用python解ACM提示Runtime error 哪里有问题?请教

Python018

用python解ACM提示Runtime error 哪里有问题?请教,第1张

Runtime error (运行时错误)就是程序运行到一半,程序就崩溃了。

比如说:除以零等等等等

你这个可能是循环太多了吧,建议你把源码贴上来,截图看着不是很清楚。

希望我的回答对你有帮助~

从结论到过程:

结论: 我做不到, 无法通过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+i<nb): continue

                rowA = a[i]

                rowB = b[i + x]

                for j in mal:

                    if not (0<=y+j<mb): 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内.

以上, 祝享受编程.

课程:

(1)基本算法: 二分,分治,贪心

(2) 离散数学离散数学动态规划

(3) 搜索算法:深度优先 搜索,广度优先搜 A*算法 ,阿尔法贝塔剪枝

(4)数据结构:  线段树, 树状数组,并查集,Trie图

(5)图论问题:最小生成树 最短路 强连通分量、桥和割点

(6)网络流算法:基本的网络流算法,Dinic算法,带上下界的网络流,最小费用流

(7)计算几何:线与线求交,线与面求交,求凸包,半平面求交等

(8) 离散数学,高等数学,线性代数,初等数论,计算几何

(9)计算机专业英语

(10)C++;基础的递归、枚举算法

扩展资料:

1.参赛队伍最多由三名参赛队员组成。

2.竞赛中命题10题左右,试题描述为英文,比赛时间为5个小时,前四个小时可以实时看到排名,最后一小时封榜,无法看到排名。

3.竞赛可以使用的语言:Java, C, C++, Kotlin 和 Python。

4.重点考察选手的算法和程序设计能力,不考察实际工程中常用的系统编程,多线程编程等等;

5.选手可携带任何非电子类资料,包括书籍和打印出来的程序等,部分赛区会对选手携带的纸质资料做限制。

6.评委负责将结果(正确或出错的类型)通过网络尽快返回给选手,除此之外不提供任何额外帮助;

7.每个题目对应一种颜色的气球,通过该题目的队伍会得到对应颜色气球。每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。

参考资料:北京大学暑期课:ACM/ICPC竞赛训练

百度百科-ACM国际大学生程序设计竞赛