您的位置:首页 > 其它

【LA 3882 - And Then There Was One】 + 约瑟夫环变形

2017-04-29 18:27 459 查看
题意:n个人围成一圈,编号从1-n,规定第一个被杀掉的人编号为m,然后开始每数k个数,杀掉一个人,问最后剩余的人编号

思路 : a
= ( a[n - 1] + k ) % n,只不过第一个出去的人变成了m而已,last = (((last + m - k + 1) % n) + n) % n;

AC代码:

#include<cstdio>
int main()
{
int n,m,k;
while(scanf("%d %d %d",&n,&k,&m) != EOF){
int last = 0;
for(int i = 2; i <= n; i++)
last = (last + k) % i;
last = (((last + m - k + 1) % n) + n) % n;
printf("%d\n",last);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: