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 |
晕,1到13算完才0.3m还说超时!!!直接看源代码,中间我自己加了测时间的 #include <iostream> #include <vector> #include <ctime> using namespace std; int Choose(int k); bool Check(int m,int k); int main() { int k; vector<int> result; while(cin>>k) { if(k==0) break; result.push_back(k); } clock_t start,finish; start=clock(); for(unsigned int i=0;i<result.size();i++) { cout<<Choose(result[i])<<endl; } finish=clock(); cout<<"Time take : "<<((double)(finish-start))/CLOCKS_PER_SEC<<endl; return 0; } int Choose(int k) { int m=k+1; while(true) { if(Check(m,k)) return m; else m++; } } bool Check(int m,int k) { int pos=0; for(int i=0;i<k;i++) { pos=(m+pos)%(2*k-i); if(pos<=k && pos!=0) return false; if(pos==0) pos=2*k-i-1; else pos--; } return true; } 算完0.328m Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator