北大ACM(POJ1012-Joseph)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了北大ACM(POJ1012-Joseph)相关的知识,希望对你有一定的参考价值。
Question:http://poj.org/problem?id=1012
问题点:约瑟夫环。
1 Memory: 220K Time: 329MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 using namespace std; 6 bool calc(int k,int m) 7 { 8 int pos=0; 9 int sum=2*k; 10 bool flag=true; 11 while(sum>k) 12 { 13 pos=(m+pos-1)%sum; 14 if(pos<k) flag=false; 15 sum--; 16 } 17 return flag; 18 } 19 int main() 20 { 21 int k; 22 int r[13]; 23 for(k=1;k<14;k++) 24 { 25 int m=k+1; 26 while(true) 27 { 28 if(calc(k,m)) { 29 r[k-1]=m; 30 break; 31 }else if(calc(k,m+1)) { 32 r[k-1]=m+1; 33 break; 34 } 35 m+=k+1; 36 } 37 } 38 while(cin>>k && k>0) 39 { 40 cout<<r[k-1]<<endl; 41 } 42 }
以上是关于北大ACM(POJ1012-Joseph)的主要内容,如果未能解决你的问题,请参考以下文章
北大ACM(POJ1019-Number Sequence)
POJ 8471 切割回文 dp北大ACM/ICPC竞赛训练
POJ 6048 泰国佛塔 dfs搜索疯狂剪枝!北大ACM/ICPC竞赛训练