本文目錄一覽:
- 1、python代碼求減少消耗時間,acm水題
- 2、acm競賽成人可以參加嗎
- 3、做了一些Python的小練習題,如何實現自動讀取txt文件中的測試數據進行測試。
- 4、用python解ACM提示Runtime error 哪裡有問題?請教
- 5、如何用Python解決OJ中的A+B problem。
python代碼求減少消耗時間,acm水題
從結論到過程:
結論: 我做不到, 無法通過test39, 超時
過程:
進行了各種的python優化,
包括提前退出循環, 緩存內循環變數, 使用快速變數, 減少內循環函數調用, 等等
附件nums是我做的測試文件.
以此文件為基準, 以我電腦為平台
你的代碼用了19.459s, 我的代碼用了2.682s
以下為我的代碼:
def main():
na, ma = [int(s) for s in raw_input().split()]
a = []
for i in range(na):
aRow = raw_input().strip()
a.append(map(int, aRow))
nb, mb = [int(t) for t in raw_input().split()]
b = []
for j in range(nb):
bRow = raw_input().strip()
b.append(map(int, bRow))
ans, mx, my = -1, -1, -1
diffRow, diffCol = max(na, nb) – 1, max(ma, mb) – 1
rows = range(-diffRow, diffRow)
cols = range(-diffCol, diffCol)
nal = range(na)
mal = range(ma)
for x in rows:
for y in cols:
tmp = 0
for i in nal:
if not (0=x+inb): continue
rowA = a[i]
rowB = b[i + x]
for j in mal:
if not (0=y+jmb): continue
tmp += rowA[j] rowB[j+y]
if tmp ans:
ans, mx, my = tmp, x, y
print mx, my
main()
python的代碼慢一般都慢在循環上. 因為動態類型的關係, 所有的循環都要額外檢查類型.
以及它本身作為解釋型語言, 速度比C差了太多.
一般現在國外的競賽網站都是給不同的語言定不同的時間. C和C++的時間一般是2s內, java3-5s內, python一般是15-16s內.
以上, 祝享受編程.
acm競賽成人可以參加嗎
大學生都可以參加啊 大部分大學生都成年了 所以成人是可以參加的。
但是,要參賽,得以學校的名義參加,不能個人參賽。
ACM-ICPC以團隊的形式代表各學校參賽,每隊由至多3名隊員組成。每位隊員必須是在校學生,有一定的年齡限制,並且每年最多可以參加2站區域選拔賽。
比賽期間,每隊使用1台電腦需要在5個小時內使用C/C++、Java和Python中的一種編寫程序解決7到13個問題。程序完成之後提交評測機運行,運行的結果會判定為正確或錯誤兩種並及時通知參賽隊。而且有趣的是每隊在正確完成一題後,組織者將在其位置上升起一隻代表該題顏色的氣球,每道題目第一支解決掉它的隊還會額外獲得一個「FIRST PROBLEM SOLVED」的氣球。
最後的獲勝者為正確解答題目最多且總用時最少的隊伍。每道試題用時將從競賽開始到試題解答被判定為正確為止,其間每一次提交運行結果被判錯誤的話將被加罰20分鐘時間,未正確解答的試題不記時。
與其它計算機程序競賽(例如國際信息學奧林匹克,IOI)相比,ACM-ICPC的特點在於其題量大,每隊需要在5小時內完成7道或以上的題目。另外,一支隊伍3名隊員卻只有1台電腦,使得時間顯得更為緊張。因此除了紮實的專業水平,良好的團隊協作和心理素質同樣是獲勝的關鍵。
做了一些Python的小練習題,如何實現自動讀取txt文件中的測試數據進行測試。
一些經驗,僅供參考:
方法1、可以使用CSV文件格式記錄數據,這時候可以視為一種簡易資料庫來處理數據;
方法2:按行讀取數據,每行進行解析;符合預定規則的則分解行信息為數據集,進行後續處理;
方法3:基於方法2,但有可能數據是有狀態的。這時候需要記錄狀態信息,在狀態分支裡面按規則處理;
具體處理方法的選用,還是要根據源數據格式的特徵分析。
# 輸入參數就是源數據文件名
# 返回值就是讀取出來的行集合,在後面循環從頭到尾處理即可。
def getlines(fn):
f = open(fn, “r”)
lines = f.readlines()
f.close()
return lines
用python解ACM提示Runtime error 哪裡有問題?請教
Runtime error (運行時錯誤)就是程序運行到一半,程序就崩潰了。
比如說:除以零等等等等
你這個可能是循環太多了吧,建議你把源碼貼上來,截圖看著不是很清楚。
希望我的回答對你有幫助~
如何用Python解決OJ中的A+B problem。
描述
Calculate a + b
輸入
Two integer a,,b (0 ≤ a,b ≤ 10)
輸出
Output a + b
樣例輸入
1 2
樣例輸出
3
在python3 中,以這樣的格式輸入兩個數要把這兩個數當作一個字元串來處理,找到空格字元,讓後兩個數相加即可。錯誤解題方法是
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288474.html