❶ 请问在noip和noi这种信息学竞赛中,程序的时间复杂度在10的几次方内不会超时(1s)
一般是10^8左右,但是还要看常数,比如说for循环1亿次基本不会超。但是1亿次除法就很危险了。
LS说的比较全了。但是O(n^3),500很危险,除非Floyd等常熟特别小的。O(nlogn)的话,线段树平衡树等都只能到10w,如果是动态树什么的只能四五万,堆的话可以20w左右,排序1000000个数基本上到顶了。
此外数组大小和寻址方式也会制约程序时间,比如。
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j) a[i][j];
和
for (int j=1;j<=n;++j)
for (int i=1;i<=n;++i) a[i][j]
差距很大
❷ C语言中实现在5分钟内循环执行程序,超过时间就结束程序
#include <stdio.h>#include <time.h>int main ()
{
time_t seconds;
seconds = time(NULL);
//获得从1970/1/1到现在所经历的秒数
//你每次循环时都去获取这个time(NULL), 知道你获得的time(NULL)-seconds>=300, 即300秒
return(0);
}
❸ vb程序运行时,FOR大概循环多少次就会死机啊
除非你的电脑是二十年前的老机子,不然是不会死机的。
不过死机有两个意思。一是程序无响应。这种情况下你可以在循环体内加一个Doevents:
Fori=....
'代码
Doevents'程序响应
'代码
Nexti
详见网络Doevents
第二种是你的系统崩溃了。
你玩一个扫雷运算量至少有几个For,上一次网的运算量相当于几十个For,看看电影运算量量相当于几百个For。玩一个游戏的运算量至少有上千个For。其实For循环只是完成三个步骤:控制体+步长、执行循环体、判断是否结束。如果这都能死机,说明你的机开机都不可能。(开机至少也有几百个For的运算量吧...)
所以说死机只可能是代码不当。
❹ 为什么C语言程序测试会超时
按照操作系统中的说法,它给每一个进程都设定了时间的上限,超过一定的时间后就会报错,所以,可能是你写的程序里面算法使用的循环次数太多,或者是你的代码里面出现一些因为打字错误而导致的死循环(我以前经常犯这种错误)。总之,仔细检查你的代码,兴许可以发现错哪儿了。
❺ pascal for循环多少次超时
不会,如果以1s计,可以当作是3000万-5000万次(for循环内不进行操作的话,如果for循环里有t个类似于a:=a+1那样的简单运算,则将循环次数乘以(t+1)近似为计算数)