#13994: 為何TLE求解


timmy940410 (遊艇)

學校 : 臺北市私立延平高級中學
編號 : 69053
來源 : [122.116.197.27]
最後登入時間 :
2021-02-19 11:39:00
d193. 11526 - H(n) -- UVa11526 | From: [114.32.213.13] | 發表日期 : 2018-05-26 18:40

 #include<stdio.h>
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &ci);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

 
#13995: Re:為何TLE求解


timmy940410 (遊艇)

學校 : 臺北市私立延平高級中學
編號 : 69053
來源 : [122.116.197.27]
最後登入時間 :
2021-02-19 11:39:00
d193. 11526 - H(n) -- UVa11526 | From: [114.32.213.13] | 發表日期 : 2018-05-26 18:43

 #include
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &c);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

打錯ci->c




 
#16064: Re:為何TLE求解


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.136.179.30]
最後登入時間 :
2024-04-29 19:11:35
d193. 11526 - H(n) -- UVa11526 | From: [203.72.178.252] | 發表日期 : 2018-11-16 17:40

 #include
long long H(int);
int main(){
int n;
scanf("%d", &n);
while(n--){
int c;
scanf("%d", &c);
c=H(c);
printf("%d\n", c);
}
return 0;
}
long long H(int n){
long long res = 0;
for(int i=1;i<=n;i=i+1){
res=(res+n/i);
}
return res;
}

打錯ci->c

這題絕對不能用他給的函數直接貼上去(1000*2147483647=TLE吃到死)

想想看有沒有能讓迴圈只跑sqrt(n)次的辦法

P.S.先想想這個函數的名字為什麼叫H(n)-->絕對不是亂取的

P.S.真的不會再去這個網站看看吧:https://www.geeksforgeeks.org/sum-series-n1-n2-n3-n4-nn/




 
ZeroJudge Forum