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 |
这样还RT?不解bool check(long num,int k) { int length = k*2; long number = num%length+length; int nodes[28]; int count = 0; int index = 1; int next = 1; int k_value = k; int j=0; for(int i=1;i<=length;i++) { nodes[i]=i; } count = 1; while(count <= number) { ++next; if(next > length) { next = 1; } if(count == number-1) { if(nodes[next] <= k) return false; for(j=next;j<=length-1;j++) { nodes[j] = nodes[j+1]; } count = 0; --k_value; if(k_value == 0) return true; --length; if(next > length) { next = 1; } number = num%length; if(number < 3) number += length; } count++; } return true; } long Joseph(int k) { long number = k+1; while(true) { /*满足条件的数值肯定符合 number % (k+1) ==0 或者 number % (k+1)==1,这可以从这剩下一个坏人的情况下推出*/ if(check(number,k)) { return number; } else if(check(number+1,k)) { return number+1; } number += (k+1); } } int main() { //ifstream in("in.txt"); int k; while(cin>>k) { if(k==0) break; else { cout<<Joseph(k)<<endl; } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator