POJ - 1012 Joseph
2013-11-23 16:17
323 查看
题意:约瑟夫环的问题,前K个人是好人,后K个人是坏人,求最小的M,枚举M,套用公式ans[i]=(ans[i-1]+m-1)%(n-i+1),报数是从1开始的
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main(){ int Joseph[14] = {0}; int k; while (scanf("%d",&k) != EOF && k){ if (Joseph[k]){ printf("%d\n",Joseph[k]); continue; } int n = 2*k; int ans[30] = {0}; int m = 1; for (int i = 1; i <= k; i++){ ans[i] = (ans[i-1]+m-1)%(n-i+1); if (ans[i] < k){ i = 0; m++; } } Joseph[k] = m; printf("%d\n",m); } return 0; }
相关文章推荐
- poj 1012 Joseph
- poj 1012 Joseph解题报告
- POJ 1012 Joseph 推导,暴力,约瑟夫环,打表 难度:2
- [POJ][1012]Joseph
- POJ 题目1012Joseph(数学,约瑟夫环)
- POJ 1012 Joseph
- Joseph - POJ 1012 打表
- POJ 1012:Joseph
- poj 1012 Joseph
- Poj1012_Joseph
- POJ 1012 Joseph
- poj1012 Joseph
- POJ 1012 Joseph 变形约瑟夫环
- poj 1012 Joseph
- poj 1012 & hdu 1443 Joseph(约瑟夫环变形)
- POJ 1012:Joseph
- poj1012-Joseph
- POJ1012 Joseph
- Poj1012_Joseph
- poj 1012 -- Joseph (约瑟夫环)