避免 Time Limit Exceeded
经常会遇到这种令人抓狂的情况
自己编写的程序在codeblocks上怎么编译运行都能输出正确结果
然而一提交,却无法Accept,很多时候显示的并不是Wrong Answer 而是比WrongAnswer更令人绝望的 。
在oj中,给定的Time Limit 是1000MS,出现Time Limit Exceeded则说明这个程序的运行时间超过了这个限度。
经过几道题,我猜想了几个关于超时的原因:
1.没有循环终止条件。
就是说程序中存在一个循环,但是这个循环没有终止条件,或者说是条件太宽泛,在运行的时候虽然能输出结果,但这个循环会一直循环下去,导致运行时间过长。
例如:
在1001中,要测试多组数据,进行多次循环,
如果这样写
for(m=0;m>0;m++)
scanf(.......)
......
企图让输入一直循环,理论上并没有什么问题,程序也能运行正确,但却会超时。
因为没有一个终止的条件,计算机会一直不断去运行,m只会无限大,这是实际一种很无赖的做法。
而如果要想用一个合理的方式实现无限次循环,就需要用
while(scanf()!=EOF)
......
这里虽然也可无限次的循环,却有了终止条件:返回值为-1 的时候
关于while(scanf()!=EOF)的用法原理,
我再网上查阅得到:
scanf("%d,%d", &a, &b)中 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
2.函数调用超时。例如:在1279中,需要用到一个n的阶乘。在第一次做的时候,我调用了一个递归函数来求阶乘,运行测试正确,却出现了超时情况。然后换了一种做法,用一个for循环去求阶乘,结果就通过了。我上网查询得到,递归调用因为经常会调用自身很多次,所以时间的复杂度是指数级别的。 3.程序算法不够优化。就是说自己的程序太复杂,存在更快更有效率的方法。所以在解决问题时,应尽量选择简单的算法。如果遇到了这种情况,只能换一个思路了。4.程序本身存在问题。
避免 Time Limit Exceeded相关推荐
- java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...
- spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
代码: import com.mongodb.spark.config.ReadConfig import com.mongodb.spark.sql._ val config = sqlContex ...
- Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常
Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常 参考文章: (1)Caused by: java.sql ...
- Eclipse报错:gc overhead limit exceeded eclipse
Eclipse报错:gc overhead limit exceeded eclipse 原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件. 1.打开 ...
- 原因代码10044-Erdos number Time limit exceeded
近期笔者几篇文章介绍了改原因代码的文章. 关联文章的地址 以下是我的代码,但是在通过uva试测是time limit exceeded, 不道知是什么原因,而且我自己试测了几个数据都是对的. 每日一道 ...
- OutOfMemoryError: GC Overhead Limit Exceeded错误处理
OutOfMemoryError: GC Overhead Limit Exceeded错误处理 最近线上遇到一个问题,服务日志正常打印,但是接口调不通,重启服务后正常. 为了找到问题所在,那就翻日志 ...
- 一次OutOfMemoryError: GC overhead limit exceeded
现象: 由于需要将mysql表中的过期数据在凌晨定时读取出过滤后转入到MongoDB,一个转换SQL达到百行,而且有几十个,集中运行后程序反馈异常: Handler dispatch failed; ...
- unable to execute dex:GC overhead limit exceeded unable to execute dex:java heap space 解决方案
最近做厂商适配,厂商提供了一部分Framework的jar包,把jar包通过Add Jar放到Build Path中, 在生成APK过程中,Eclipse长时间停留在100%那个进度. 最后Eclip ...
- java.lang.OutOfMemoryError:GC overhead limit exceeded
我遇到这样的问题,本地部署时抛出异常java.lang.OutOfMemoryError:GC overhead limit exceeded导致服务起不来,查看日志发现加载了太多资源到内存,本地的性 ...
- matlab调用Java程序时出现 Java.lang.OutOfMemoryErrot: GC overhead limit exceeded
matlab调用Java程序时出现 java.lang.OutOfMemoryError: GC overhead limit exceeded JDK1.6.0_37和JDK_1.7.0_60版本, ...
最新文章
- 从PCD文件写入和读取点云数据
- torchtext语料库 词与 下标互转使用教程
- 计算机操作系统“进程”与“线程”的通俗解析
- 利用OpenCV的库函数Sobel和Scharr作图像的边缘检测
- mysql ddl脚本_MySQL学习之路(1):SQL脚本语言
- git 命令详解_再次学习Git版本控制工具
- 数学之路-分布式计算-disco(4)
- 【BZOJ2659】算不出的算式,打表找规律
- 特斯拉CEO马斯克再卖4套房 挂牌价6250万美元
- 可输入可选择的input
- Job 存储和持久化 (第五部分)
- 微信撤回软件安卓版_微信强制撤回app
- 驱动安装时数字签名无效
- 计算机始业课教案,始业课教案
- sublime教程以及python环境的配置(二)常用插件安装和Boxy主题配置
- 【论文阅读】SCRDet++
- 基于PLC的污水处理系统
- 可爱猫+python3+Flask+aiohttp简单搭建微信机器人
- c语言课后答案上海交通,上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)...
- 显示unc路径服务器根目录,路径解释:绝对、相对、UNC 和 URL
热门文章
- Not Adjacent Matrix、Same Differences、Arranging The Sheep
- 如何解开payload.bin获取包括Android内核在内的系统镜像文件?payload.bin解包教程
- 从扫码登录的原理分析QQ大量被盗事件
- ArcGIS Pro 学习路径
- 计算机图形学期末复习知识点总结
- 触摸屏 触摸操作 鼠标点击事件
- 糖友如何选择正确的饮食计划
- 【5G核心网】5GC核心网之网元AUSF
- python的shape和reshape_一文浅显易懂:Python中shape()和reshape()的用法和区别
- python中shape的解释