经常会遇到这种令人抓狂的情况

自己编写的程序在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相关推荐

  1. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  2. spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常

    代码: import com.mongodb.spark.config.ReadConfig import com.mongodb.spark.sql._ val config = sqlContex ...

  3. Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常

    Caused by: java.sql.SQLException: GC overhead limit exceeded处理百万数据出现的异常 参考文章: (1)Caused by: java.sql ...

  4. Eclipse报错:gc overhead limit exceeded eclipse

    Eclipse报错:gc overhead limit exceeded eclipse 原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件. 1.打开 ...

  5. 原因代码10044-Erdos number Time limit exceeded

    近期笔者几篇文章介绍了改原因代码的文章. 关联文章的地址 以下是我的代码,但是在通过uva试测是time limit exceeded, 不道知是什么原因,而且我自己试测了几个数据都是对的. 每日一道 ...

  6. OutOfMemoryError: GC Overhead Limit Exceeded错误处理

    OutOfMemoryError: GC Overhead Limit Exceeded错误处理 最近线上遇到一个问题,服务日志正常打印,但是接口调不通,重启服务后正常. 为了找到问题所在,那就翻日志 ...

  7. 一次OutOfMemoryError: GC overhead limit exceeded

    现象: 由于需要将mysql表中的过期数据在凌晨定时读取出过滤后转入到MongoDB,一个转换SQL达到百行,而且有几十个,集中运行后程序反馈异常: Handler dispatch failed; ...

  8. 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 ...

  9. java.lang.OutOfMemoryError:GC overhead limit exceeded

    我遇到这样的问题,本地部署时抛出异常java.lang.OutOfMemoryError:GC overhead limit exceeded导致服务起不来,查看日志发现加载了太多资源到内存,本地的性 ...

  10. 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版本, ...

最新文章

  1. 从PCD文件写入和读取点云数据
  2. torchtext语料库 词与 下标互转使用教程
  3. 计算机操作系统“进程”与“线程”的通俗解析
  4. 利用OpenCV的库函数Sobel和Scharr作图像的边缘检测
  5. mysql ddl脚本_MySQL学习之路(1):SQL脚本语言
  6. git 命令详解_再次学习Git版本控制工具
  7. 数学之路-分布式计算-disco(4)
  8. 【BZOJ2659】算不出的算式,打表找规律
  9. 特斯拉CEO马斯克再卖4套房 挂牌价6250万美元
  10. 可输入可选择的input
  11. Job 存储和持久化 (第五部分)
  12. 微信撤回软件安卓版_微信强制撤回app
  13. 驱动安装时数字签名无效
  14. 计算机始业课教案,始业课教案
  15. sublime教程以及python环境的配置(二)常用插件安装和Boxy主题配置
  16. 【论文阅读】SCRDet++
  17. 基于PLC的污水处理系统
  18. 可爱猫+python3+Flask+aiohttp简单搭建微信机器人
  19. c语言课后答案上海交通,上海交通大学继续教育学院2012春——程序设计(C)作业1(有答案)...
  20. 显示unc路径服务器根目录,路径解释:绝对、相对、UNC 和 URL

热门文章

  1. Not Adjacent Matrix、Same Differences、Arranging The Sheep
  2. 如何解开payload.bin获取包括Android内核在内的系统镜像文件?payload.bin解包教程
  3. 从扫码登录的原理分析QQ大量被盗事件
  4. ArcGIS Pro 学习路径
  5. 计算机图形学期末复习知识点总结
  6. 触摸屏 触摸操作 鼠标点击事件
  7. 糖友如何选择正确的饮食计划
  8. 【5G核心网】5GC核心网之网元AUSF
  9. python的shape和reshape_一文浅显易懂:Python中shape()和reshape()的用法和区别
  10. python中shape的解释