#18490: 被TLE怎麼辦


david998869@gmail.com (王鈺翔)

學校 : 不指定學校
編號 : 99365
來源 : [140.126.196.25]
最後登入時間 :
2019-07-11 13:38:29
e293. 花開花落,雨初臨 | From: [118.166.210.235] | 發表日期 : 2019-07-17 21:23

我前面7個測資都過了,最後面三個怎樣都TLE,我該怎麼辦??

P.S:系統說後面三個的n<=5000,前面n<=1000的我都過了...

以下附上小的的程式碼(C++)

#include <iostream>
#include <string>
using namespace std;

int main( )
{
string s;
int n[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int line,a,b,c,N;
bool flag;
cin>>N;
for(line=0;line<N;line++){
flag=false;
cin>>s;
for(a=0;a<25;a++){
c=0;
for(b=0;b<s.size();b++){
c=c*10+(s[b]-48);
if(c>=n[a])c=c%n[a];

}
if(c%n[a]==0){
cout<<n[a]<<" ";
flag=true;
}
}
if(flag==false){
cout<<"Terrible Silence...";
}
cout<<endl;
}
return 0;
}

 
#18491: Re:被TLE怎麼辦


david998869@gmail.com (王鈺翔)

學校 : 不指定學校
編號 : 99365
來源 : [140.126.196.25]
最後登入時間 :
2019-07-11 13:38:29
e293. 花開花落,雨初臨 | From: [118.166.210.235] | 發表日期 : 2019-07-17 21:28

小的更新後還是不行...

#include
#include
using namespace std;

int main( )
{
string s;
int n[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int line,a,b,c,N;
bool flag;
cin>>N;
for(line=0;line<N;line++){
flag=false;
cin>>s;
for(a=0;a<25;a++){
c=0;
for(b=0;b<s.size();b++){
c=c*10+(s[b]-48);
c=c%n[a];

}
if(c%n[a]==0){
cout<<n[a]<<" ";
flag=true;
}
}
if(flag==false){
cout<<"Terrible Silence...";
}
cout<<endl;
}
return 0;
}




 
#18492: Re:被TLE怎麼辦


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.154.168]
最後登入時間 :
2024-04-27 22:14:03
e293. 花開花落,雨初臨 | From: [61.223.42.112] | 發表日期 : 2019-07-17 21:37

 

您要不要先寫一個大數取模的 function , 我看不懂 cpp, 不過看您取模的過程好掙扎。

 
#18493: Re:被TLE怎麼辦


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.154.168]
最後登入時間 :
2024-04-27 22:14:03
e293. 花開花落,雨初臨 | From: [61.223.42.112] | 發表日期 : 2019-07-17 21:44

 

5000*25*5000



 
#18494: Re:被TLE怎麼辦


david998869@gmail.com (王鈺翔)

學校 : 不指定學校
編號 : 99365
來源 : [140.126.196.25]
最後登入時間 :
2019-07-11 13:38:29
e293. 花開花落,雨初臨 | From: [118.166.210.235] | 發表日期 : 2019-07-17 22:06

 

5000*25*5000





小的是一邊取模一邊做質因數驗證,所以版面會稍亂一些

另外,小的想問您上面的意思是...

PS能否順便告訴我您的方法和觀念

 
#18495: Re:被TLE怎麼辦


asnewchien@gmail.com (david)

學校 : 不指定學校
編號 : 68108
來源 : [114.42.154.168]
最後登入時間 :
2024-04-27 22:14:03
e293. 花開花落,雨初臨 | From: [61.223.42.112] | 發表日期 : 2019-07-17 22:18

 

line 5000

prime 25

s.size 5000

應該會跑很久吧。

 
#18499: Re:被TLE怎麼辦


rexwu1104@gmail.com (黑雪公主 Black Lotus)

學校 : 新北市私立南山高級中學
編號 : 93041
來源 : [118.166.54.130]
最後登入時間 :
2022-06-06 20:48:09
e293. 花開花落,雨初臨 | From: [114.24.13.172] | 發表日期 : 2019-07-18 11:11

 

5000*25*5000





小的是一邊取模一邊做質因數驗證,所以版面會稍亂一些

另外,小的想問您上面的意思是...

PS能否順便告訴我您的方法和觀念

我將你的程式碼優化過了,但最後三個還是TLE


 
ZeroJudge Forum