the lime limited error
转载自:https://blog.csdn.net/MTOY_320/article/details/78363375?locationNum=7&fps=1
经常会遇到这种令人抓狂的情况
自己编写的程序在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.程序本身存在问题。
the lime limited error的更多相关文章
- ArcGIS Earth数据小析
ArcGIS Earth,一款轻量级的三维地球应用.因为工作关系下载试用了半天,正好借这个机会简单研究一下ArcGIS Earth的大概思路,特别是地形数据的组成和影像数据的加载,在这总结整理一下.下 ...
- 8.11-8.16:usaco
summary:57 bzoj1741:裸二分图最大匹配 #include<cstdio> #include<cstring> #include<iostream> ...
- [Leetcode][015] 3Sum (Java)
题目在这里: https://leetcode.com/problems/3sum/ [标签] Array; Two Pointers [个人分析] 老实交待,这个题卡半天,第一次做不会,抄别人的.过 ...
- 22. Generate Parentheses C++回溯法
把左右括号剩余的次数记录下来,传入回溯函数. 判断是否得到结果的条件就是剩余括号数是否都为零. 注意判断左括号是否剩余时,加上left>0的判断条件!否则会memory limited erro ...
- Impala SQL 语言元素(翻译)[转载]
原 Impala SQL 语言元素(翻译) 本文来源于http://my.oschina.net/weiqingbin/blog/189413#OSC_h2_2 摘要 http://www.cloud ...
- Impala SQL 语言元素(翻译)
摘要: http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Usin ...
- [译]Vulkan教程(06)验证层
[译]Vulkan教程(06)验证层 What are validation layers? 什么是验证层? The Vulkan API is designed around the idea of ...
- [译]Vulkan教程(02)概况
[译]Vulkan教程(02)概况 这是我翻译(https://vulkan-tutorial.com)上的Vulkan教程的第2篇. This chapter will start off with ...
- 升级gitk后,Error in startup script: unknown color name "lime"
$ gitkError in startup script: unknown color name "greeen" (processing "-fore" o ...
随机推荐
- 论文阅读笔记十:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs (DeepLabv2)(CVPR2016)
论文链接:https://arxiv.org/pdf/1606.00915.pdf 摘要 该文主要对基于深度学习的分割任务做了三个贡献,(1)使用空洞卷积来进行上采样来进行密集的预测任务.空洞卷积可以 ...
- 饮冰三年-人工智能-Python-15Python基础之文件处理
# 写文件--开始 f=open('test','w',encoding="utf-8") #如果有则写,没有就创建 print(f.writable()) #True f.wri ...
- 目标检测算法之Fast R-CNN算法详解
在介绍Fast R-CNN之前我们先介绍一下SPP Net 一.SPP Net SPP:Spatial Pyramid Pooling(空间金字塔池化) 众所周知,CNN一般都含有卷积部分和全连接部分 ...
- 装饰器实现session登陆 验证功能
装饰器 登陆验证功能 1.装饰器模板 from django.shortcuts import render, redirect, HttpResponse from django.conf impo ...
- canvas给图片加水印
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【bzoj4976】宝石镶嵌
题解: 比较水 注意k<=100这个条件 当n-k比较大的时候 我们显然会把它有的位都给取了 不然的话我们可以考虑dp 暴力状压就可以了 代码: #include <bits/stdc++ ...
- 【CF446D】DZY Loves Games
题解: 不错的题目 首先要求的黑点个数非常多 比较容易想到矩阵乘法 于是我们可以求出从某个黑点出发到任意一个黑点之间的概率 发现不同出发点带来的变化只有常数项 于是我们可以预处理出从每个方程转移的系数 ...
- python的random()函数
python 的random函数需要调用 #!/usr/bin/python # -*- coding: UTF-8 -*- import random print( random.randint(1 ...
- eclipse启动web应用
在建好web项目的基础上: (1)配置tomcat服务器 点击window---->Preference----->Server---->Runtime Environment--- ...
- BZOJ1856 [Scoi2010]字符串 数论
原文链接http://www.cnblogs.com/zhouzhendong/p/8084577.html 题目传送门 - BZOJ1856 题意概括 找出由n个1,m个0组成的字符串,且任意前几个 ...