UVA 305 - Joseph(模拟)
2014-08-03 15:52
971 查看
UVA 305 - Joseph
题目链接题意:前k个好人,后k个坏人,排成一个环,现在给一个步数m,按照约瑟夫环问题去走,保证杀光坏人,不杀到好人,求最小的m
思路:k最多14,直接枚举步数模拟即可
代码:
#include <cstdio>
#include <cstring>
int k, ans[15];
bool judge(int num, int k) {
int now = 0;
for (int i = num * 2; i > num; i--) {
now = (now - 1 + k) % i;
if (now < num) return false;
}
return true;
}
int solve(int k) {
for (int i = k + 1; ;i++) {
if (judge(k, i))
return i;
}
return -1;
}
int main() {
for (int i = 1; i < 14; i++)
ans[i] = solve(i);
while (~scanf("%d", &k) && k) {
printf("%d\n", ans[k]);
}
return 0;
}
相关文章推荐
- uva 305 Joseph
- UVALive5520 UVA305 POJ1012 HDU1443 Joseph【数学计算+打表+水题】
- UVA 305 Joseph (约瑟夫环 打表)
- UVa 305 - Joseph
- UVa 305 / POJ 1012 Joseph (如何得到约瑟夫环的下一个位置?)
- UVA 305 Joseph
- Uva305——Joseph
- Joseph - acm.uva.305(约瑟夫环)
- uva305 - Joseph 约瑟夫问题变形
- UVA305 - Joseph(数论 + 打表)
- uva 305 Joseph
- uva 305 Joseph(约瑟夫环解+打表)
- uva 305 - Joseph(暴力)
- UVA 305 - Joseph
- UVA305 - Joseph(数论 + 打表)
- UVA 305 Joseph (约瑟夫环 打表)
- uva 305 Joseph
- UVA, 305 Joseph
- 约瑟夫循环问题uva305 Joseph
- Uva 305 Joseph(数学+打表)