本文目录一览:
- 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 中,以这样的格式输入两个数要把这两个数当作一个字符串来处理,找到空格字符,让后两个数相加即可。错误解题方法是