lightoj 1179 - Josephus Problem 约瑟夫问题
来源:互联网 发布:猫叔盒子软件 编辑:程序博客网 时间:2024/05/21 14:52
#include <stdio.h>#include <math.h>#include <string.h>#include <algorithm>using namespace std;int c[100],f[100001];//f[i]表示0~i-1围成一圈,按k个一删最后剩下的数值。int main(){ int T,tt=0; scanf("%lld",&T); while(T--) { int n,i,j,k,s=0; scanf("%d%d",&n,&k); printf("Case %d: ",++tt); f[1]=0; for(i=2;i<=n;i++) f[i]=(f[i-1]+k)%i; printf("%d\n",f[n]+1); } return 0;}/*举例说明:n=8,k=5;01234567,第一次删除5,然后从5的位置开始编号0~6,就成了n=7,k=5的环;如果f[7]=4,想对应的在n=8中的位置就是(f[7]+5)%8=1,就说明最后剩下的是1,(这里是举例说明,实际数据可能对不上)*/变形:从第m个开始删除:
#include <stdio.h>#include <math.h>#include <string.h>#include <algorithm>using namespace std;int c[100],f[100001];int main(){ int T,tt=0; scanf("%lld",&T); while(T--) { int n,i,j,k,s=0,m; scanf("%d%d",&n,&k,&m); printf("Case %d: ",++tt); f[1]=0; for(i=2;i<=n;i++) f[i]=(f[i-1]+k)%i; int ans=(m-k+1+f[n])%n; if(ans<=n) ans+=n; printf("%d\n",ans); } return 0;}
- lightoj 1179 - Josephus Problem 约瑟夫问题
- lightoj 1179 - Josephus Problem 【约瑟夫环】
- lightoj 1179 - Josephus Problem 约瑟夫环
- 约瑟夫问题(Josephus problem)
- Josephus problem(约瑟夫问题)
- 约瑟夫问题Josephus problem
- LightOj 1179 Josephus Problem
- 约瑟夫问题(Josephus problem)
- 约瑟夫问题(Josephus Problem)
- 约瑟夫问题(Josephus problem)
- 约瑟夫问题(Josephus problem)的一点思考
- 约瑟夫环问题——Josephus Problem
- 约瑟夫环问题(josephus problem)详解
- josephus problem——约瑟夫问题
- Algorithm Gossip: 约瑟夫问题(Josephus Problem)
- 约瑟夫(Josephus problem)环问题初探
- Josephus Problem 约瑟夫环问题的讨论
- Java-约瑟夫问题(Josephus Problem)
- Block的使用详解
- hdu 2108 Shape of HDU【判断多边形是否是凸多边形模板】
- POJ 3468 A Simple Problem with Integers----线段树
- python二维list的声明
- 判断回文数
- lightoj 1179 - Josephus Problem 约瑟夫问题
- hdu 2036 改革春风吹满地【求多边形面积模板】
- Android首选项框架ListPreference
- hdu 2923 Einbahnstrasse
- 黑马程序员-------Java基本的输入输出
- layoutSubviews总结
- Jquery中的this与$(this)
- 时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
- PHP开发API接口(注册、登录、查询用户资料)