#5558: 為什麼會TLE(1s) !!


CSE911509 (↙★~柏霖~☆↗)

學校 : 國立臺中高級工業職業學校
編號 : 15771
來源 : [218.170.1.81]
最後登入時間 :
2012-01-22 15:16:26
d336. 一即是全、全即是一 | From: [218.170.9.190] | 發表日期 : 2011-08-11 11:38

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    long long unsigned int x,y,d;
    char A[9001];
    while(cin>>x)
    {
     for(y=1;y<=x;y++)
     {
      cin>>A;
      int a=strlen(A);
      int c=0;
      for(int b=a;b>=0;b--)
      {
       int e=A[b]-'0';
       c+=pow(2,b)*e;
      }
       d=c%3;
       if(d==0)
       cout<<"Yes"<<endl;
       else
       cout<<"No"<<endl;
     }
    }
return 0;
#5571: Re:為什麼會TLE(1s) !!


morris1028 (碼畜)

學校 : 國立花蓮高級中學
編號 : 3529
來源 : [114.37.59.62]
最後登入時間 :
2021-07-12 19:00:43
d336. 一即是全、全即是一 | From: [118.161.215.136] | 發表日期 : 2011-08-13 05:42

首先, 這題用 cin 會太慢, 雖然主機升級了, 也有可能拿 TLE,

應該改成 scanf("%s", A); or gets(A);

再來, int 沒辦法裝下 2^9000, 當然, 這題不可能叫你使用大數,

接著是, 字元陣列讀入進來, 是 A[0~strlen(A)-1] , 而不是到strlen(A),

這題真正的做法, 是希望你去觀察 (2^i) %3 的規律, 以及餘數的定理

 
#5578: Re:為什麼會TLE(1s) !!


CSE911509 (↙★~柏霖~☆↗)

學校 : 國立臺中高級工業職業學校
編號 : 15771
來源 : [218.170.1.81]
最後登入時間 :
2012-01-22 15:16:26
d336. 一即是全、全即是一 | From: [218.170.0.76] | 發表日期 : 2011-08-13 10:40

首先, 這題用 cin 會太慢, 雖然主機升級了, 也有可能拿 TLE,

應該改成 scanf("%s", A); or gets(A);

再來, int 沒辦法裝下 2^9000, 當然, 這題不可能叫你使用大數,

接著是, 字元陣列讀入進來, 是 A[0~strlen(A)-1] , 而不是到strlen(A),

這題真正的做法, 是希望你去觀察 (2^i) %3 的規律, 以及餘數的定理

瞭解了!! 謝謝大大~
 
ZeroJudge Forum