约瑟夫问题及其变形
2013-11-21 17:14
295 查看
问题:n个数排一个圈,从编号1开始删除,以后每m个数删一次,问最后一个被删除的数。2<=n<+10000, 1<=k<=10000
变形:从第k个数开始删。
#include<iostream> using namespace std; int main() { int n, m, w; while (cin>>n>>m, n + m) { w = 0; for (int i = 2; i <= n; i++) w = (w + m) % i;//下一个开始位置 printf("%d %d %d\n", n, m, w + 1); } return 0; }
变形:从第k个数开始删。
#include<iostream> using namespace std; #define MAXN 10000 + 10 int f[MAXN]; int main() { int n, k, m; while (cin>>n>>k>>m) { f[1] = 0; for (int i = 2; i<=n; i++) f[i] = (f[i - 1] + m) % i;//找出f int ans = (k - m + 1 + f ) % n;//处理从k开始删除的位置问题 if (ans <= 0) ans += n;//是负数就加一圈 cout<<ans<<endl; } return 0; }
相关文章推荐
- 约瑟夫问题及其变形
- 约瑟夫问题及其变形
- uva305 - Joseph 约瑟夫问题变形
- 最大子串和问题及其变形
- 约瑟夫环(约瑟夫问题的变形,LA 3882)
- 例26 约瑟夫问题的变形(And Then There Was One,Japan 2007,LA 3882)
- 没有敢死队问题--约瑟夫变形
- 约瑟夫问题变形 And Then There was One, LA 3882 递推 动态规划
- 约瑟夫问题及变形:poj 1012
- 最大子数组问题及其变形
- 约瑟夫问题变形 And Then There was One, LA 3882 递推 动态规划
- POJ 2244:Eeny Meeny Moo(稍加变形的约瑟夫问题)
- 约瑟夫问题的变形(And Then There Was One,Japan 2007,LA 3882)
- 约瑟夫问题及其各种优化
- 关于dp数塔类问题及其变形
- UVALive - 3882 And Then There Was One 约瑟夫的变形问题
- 投硬币问题及其变形
- 1394 - And Then There Was One(约瑟夫问题变形)DP
- LA 3882 And Then There Was One[约瑟夫问题的变形]
- LA3882(约瑟夫问题及变形)