您的位置:首页
POJ 1012 Joseph(打表题)
2017-06-02 12:00
351 查看
题意:约瑟夫环的变形。要求寻找到一个杀人循环节m使后半节的坏人先被所有杀光。
直接链表模拟出结果,再打表即可;
代码:(凝视的是打表码)
直接链表模拟出结果,再打表即可;
代码:(凝视的是打表码)
#include<iostream> #include<cstdio> #include<cmath> #include<map> #include<queue> #include<string> #include<cstring> #include<algorithm> using namespace std; /* int l[30],r[30]; int main() { int k=1; //while(~scanf("%d",&k)&&k) for(k=1;k<14;k++) { k*=2;int ans=0; for(int i=1;1;i++) { memset(r,0,sizeof r); memset(l,0,sizeof l); for(int j=1;j<=k;j++) r[j]=j+1,l[j]=j-1; r[k]=1;l[0]=k; int dead=0,flag=1; for(int num=1,x=1;dead!=k/2;x=r[x],num++) { if(num!=i) if((i-num)/(k-dead)&&(i-num)%(k-dead)>0)num+=(i-num)/(k-dead)*(k-dead); else ; else if(x>k/2)num=0,l[r[x]]=l[x],r[l[x]]=r[x],dead++; else {flag=0;break;} } if(flag){ans=i;break;} } printf("%d,",ans); k/=2; } return 0; } */ int da[]={2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881}; int main() { int n; while(~scanf("%d",&n)&&n) { printf("%d\n",da[n-1]); } return 0; }
相关文章推荐
- [POJ1012]Joseph
- POJ 1012 Joseph 约瑟夫问题
- poj 1012 小白算法练习 Joseph 约瑟夫环 打表
- poj 1012 Joseph
- POJ 1012 Joseph 约瑟夫问题
- poj 1012 Joseph
- UVALive5520 UVA305 POJ1012 HDU1443 Joseph【数学计算+打表+水题】
- POJ 1012 Joseph 约瑟夫问题
- POJ 1012(Joseph)
- POJ 1012: Joseph
- poj 1012 Joseph
- POJ 1012 Joseph 题解
- POJ 1012 Joseph
- poj1012 Joseph题解2
- [poj1012]Joseph_Joseph
- poj1012——Joseph
- poj 1012 Joseph 约瑟夫问题 (★★☆☆☆)
- poj1012.Joseph(数学推论)
- poj_1012joseph
- poj-1012 Joseph