Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
现在才完全明白Runtime Error与Time Limit Exceed是有区别的,我用最原始的方法过了……有兴趣就比较一下吧: 以下的程序是我通过了的: #include<iostream> #include<string> using namespace std; struct DNA{ string str; int length; }; int count(string str,int len){ int count=0; for(int i=0;i<len;i++) for(int j=i+1;j<len;j++) { if(str[i]>str[j]) count++; else continue; } return count; } bool sort(DNA str[],int len,int num){ DNA tmp; for(int i=0;i<num;i++) for(int j=i+1;j<num;j++){ if(str[i].length>str[j].length) { tmp=str[i]; str[i]=str[j]; str[j]=tmp; } } return 1; } int main(){ DNA DNA_str[200]; int len,num;int i; cin>>len>>num; for(i=0;i<num;i++){ cin>>DNA_str[i].str; DNA_str[i].length=count(DNA_str[i].str,len); } sort(DNA_str,len,num); for(i=0;i<num;i++){ cout<<DNA_str[i].str<<endl; } // system("pause"); return 1; } 以下的程序是Time Limit Exceed的: #include<iostream> #include<string> using namespace std; long count(string str,int len){ long count=0; for(int i=0;i<len;i++) for(int j=i+1;j<len;j++) { if(str[i]>str[j]) count++; else continue; } return count; } bool sort(string str[],int len,int num){ string tmp; for(int i=0;i<num;i++)//ÓÃðÅÝËã·¨ for(int j=i+1;j<num;j++){ if(count(str[i],len)>count(str[j],len)) { tmp=str[i]; str[i]=str[j]; str[j]=tmp; } } return 1; } int main(){ int len,num; string str[100]; for(int i=0;i<100;i++) str[i]=""; cin>>len>>num; for(int i=0;i<num;i++){ cin>>str[i]; } sort(str,len,num); for(int i=0;i<num;i++) cout<<str[i]<<endl; // system("pause"); } 本质是一样的。但实际就是不一样. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator