❶ 請問在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)近似為計算數)