#15244: TLE


wish.rirf@gmail.com (C++ 與我)

學校 : 臺北市私立薇閣高級中學
編號 : 82132
來源 : [36.224.41.96]
最後登入時間 :
2021-08-07 19:29:31
d478. 共同的數 - 簡易版 | From: [223.137.145.135] | 發表日期 : 2018-09-22 16:33

第二測資一直TLE,whats wrong with that?

 
#15245: Re:TLE


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
d478. 共同的數 - 簡易版 | From: [49.158.83.43] | 發表日期 : 2018-09-22 16:40

第二測資一直TLE,whats wrong with that?


這樣我們無法幫您,不妨撥冗PO出您的程式碼吧?

 
#15247: Re:TLE


wish.rirf@gmail.com (C++ 與我)

學校 : 臺北市私立薇閣高級中學
編號 : 82132
來源 : [36.224.41.96]
最後登入時間 :
2021-08-07 19:29:31
d478. 共同的數 - 簡易版 | From: [223.137.145.135] | 發表日期 : 2018-09-22 16:44

第二測資一直TLE,whats wrong with that?


這樣我們無法幫您,不妨撥冗PO出您的程式碼吧?

#include<iostream>
using namespace std;
unsigned int n,m;
int main(){
cin>>n>>m;
long int hisnum[m],hernum[m],total;
while(n != 0){
 total = 0;
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hisnum[lcv];
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hernum[lcv];
//------------------------------------------------------
  for(unsigned int lcv = 0;lcv<m;lcv++){
    for(unsigned int inlcv = 0;inlcv<m;inlcv++){
    if(hisnum[lcv] == hernum[inlcv]){
    total++;
   }
   }
  }
 cout<<total<<'\n';
 n--;
}
return 0;
}

 

我是有注意到我這樣是暴力破解,但又不知道更好的方法,所以才提問^_^

 
#15248: Re:TLE


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
d478. 共同的數 - 簡易版 | From: [49.158.83.43] | 發表日期 : 2018-09-22 16:53

第二測資一直TLE,whats wrong with that?


這樣我們無法幫您,不妨撥冗PO出您的程式碼吧?

#include
using namespace std;
unsigned int n,m;
int main(){
cin>>n>>m;
long int hisnum[m],hernum[m],total;
while(n != 0){
 total = 0;
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hisnum[lcv];
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hernum[lcv];
//------------------------------------------------------
  for(unsigned int lcv = 0;lcv<m;lcv++){
    for(unsigned int inlcv = 0;inlcv<m;inlcv++){
    if(hisnum[lcv] == hernum[inlcv]){
    total++;
   }
   }
  }
 cout<<total<<'\n';
 n--;
}
return 0;
}

 

我是有注意到我這樣是暴力破解,但又不知道更好的方法,所以才提問^_^


可以試著在第二層迴圈判斷第二個人(在這邊是您程式碼中的"her")現在輪到的數字,是否大於第一個人現在的數字。

如果是,就跳出第二層迴圈,讓第一層繼續迭代。

 

此外,兩人數字相同時,把第二人現在的index(索引值)存在一個變數裡。下次進入第二層迴圈時,就從那個index開始即可(因為在此之前的已經判斷過了)。

 

以上。

 
#15249: Re:TLE


wish.rirf@gmail.com (C++ 與我)

學校 : 臺北市私立薇閣高級中學
編號 : 82132
來源 : [36.224.41.96]
最後登入時間 :
2021-08-07 19:29:31
d478. 共同的數 - 簡易版 | From: [223.137.145.135] | 發表日期 : 2018-09-22 16:57

第二測資一直TLE,whats wrong with that?


這樣我們無法幫您,不妨撥冗PO出您的程式碼吧?

#include
using namespace std;
unsigned int n,m;
int main(){
cin>>n>>m;
long int hisnum[m],hernum[m],total;
while(n != 0){
 total = 0;
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hisnum[lcv];
 for(unsigned short lcv = 0;lcv<m;lcv++)
 cin>>hernum[lcv];
//------------------------------------------------------
  for(unsigned int lcv = 0;lcv<m;lcv++){
    for(unsigned int inlcv = 0;inlcv<m;inlcv++){
    if(hisnum[lcv] == hernum[inlcv]){
    total++;
   }
   }
  }
 cout<<total<<'\n';
 n--;
}
return 0;
}

 

我是有注意到我這樣是暴力破解,但又不知道更好的方法,所以才提問^_^


可以試著在第二層迴圈判斷第二個人(在這邊是您程式碼中的"her")現在輪到的數字,是否大於第一個人現在的數字。

如果是,就跳出第二層迴圈,讓第一層繼續迭代。

 

此外,兩人數字相同時,把第二人現在的index(索引值)存在一個變數裡。下次進入第二層迴圈時,就從那個index開始即可(因為在此之前的已經判斷過了)。

 

以上。


謝謝!!

 
ZeroJudge Forum