uvalive3882(约瑟夫环) B
来源:互联网 发布:linux 上一条命令结果 编辑:程序博客网 时间:2024/06/05 19:40
题目链接如下:
题意:
约瑟夫环;第一个删除第m个,然后每k个删除一个,问最后剩下的一个;思路:
因为每删除一个后,我们都可以把剩下的重新编码;
当常规的约瑟夫环时,也就是从第一个开始,数k个删除;那么
f(n) = (f(n-1) + k) % n;
所以第一个数删除m的时候
我们算出常规约瑟夫环的解f(n)后;
结果就是
(m - k + 1 + f(n)) % n;
具体代码实现如下:
#include<cstdio> #include<cstring> const int N = 10005; int n, k, m, ans; int f[N]; int main() { while(scanf("%d%d%d", &n, &k, &m) && n) { f[1] = 0; for(int i = 2; i <= n; i++) f[i] = (f[i - 1] + k) % i; ans = (m - k + 1 + f[n]) % n; if (ans <= 0) ans += n; printf("%d\n", ans); } return 0; }
0 0
- uvalive3882(约瑟夫环) B
- uvalive3882(约瑟夫环)
- 约瑟夫问题、约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 该写点东西了
- C语言求最小公倍数
- Longest substring without repeating characters
- SharedPreferences保存List
- JAVA的构造器和构造方法
- uvalive3882(约瑟夫环) B
- 自学React Native(一)
- hdu1231 并查集模板题
- please shutdown interbase guardian before proceeding
- 在Octave中移动数据
- 数据结构(六)线性表(一)
- hdu5916长春区题目-瞎搞构造
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 7
- Android App 常用的几种系统交互程序