poj 1012 Joseph环问题
2015-03-02 13:54
405 查看
题意:有k个好人和k个坏人,问想要先处死k个坏人的最小间隔为多少?
思路:k比较小(k<=14),所以对于k进行枚举计算,注意把结果存一下。枚举时的递推式还是需要想一下的。b=(a+m-1)%(n-i+1); (i>=1 , 总人数2n,人编号从0~2n-1,则n-i为第i轮剩余的人数),相当于每轮都把比死者序号大的人的序号减1。
思路:k比较小(k<=14),所以对于k进行枚举计算,注意把结果存一下。枚举时的递推式还是需要想一下的。b=(a+m-1)%(n-i+1); (i>=1 , 总人数2n,人编号从0~2n-1,则n-i为第i轮剩余的人数),相当于每轮都把比死者序号大的人的序号减1。
#include <stdio.h> #include <string.h> int res[16]; int n; int main(){ memset(res,0,sizeof(res)); while(scanf("%d",&n) && n){ int i,m,a,b; if(res ){ printf("%d\n",res ); continue; } a = 0; for(i = 1,m = 1;i<=n;i++){ b = (a+m-1)%(2*n-i+1); a = b; if(b < n){ i = a = 0; m++; } } res = m; printf("%d\n",m); } return 0; }
相关文章推荐
- POJ 1012 && HDU 1443 Joseph(约瑟夫问题)
- NYOJ 191 && POJ 1012 Joseph(约瑟夫环问题)
- 【Joseph问题】poj1012 Joseph
- POJ-1012 Joseph-约瑟夫问题好人坏人
- NYOJ 191 && POJ 1012 Joseph(约瑟夫环问题)
- poj 1012 Joseph (约瑟夫问题)
- poj 1012 Joseph (约瑟夫问题)
- poj 1012 Joseph 约瑟夫问题 (★★☆☆☆)
- POJ 1012 Joseph 约瑟夫问题
- 【原】 POJ 1012 Joseph 约瑟夫 解题报告
- poj 1012(约瑟夫问题。。。)
- POJ 1012 Joseph
- poj 1012 joseph
- 【原】 POJ 3750 小孩报数问题 Joseph相关问题详解 解题报告
- poj 1012 Joseph
- poj1012-Joseph
- POJ 1012 约瑟夫问题
- POJ 1012 Joseph
- 【原】 POJ 3517 And Then There Was One Joseph问题 解题报告
- poj1012 Joseph题解2