2.2.2 Joseph
来源:互联网 发布:mac 查看网络流量命令 编辑:程序博客网 时间:2024/05/05 05:11
#include<cstdio>int a[15];int main(){ int n; for(int i=1;i<=14;++i){ for(int j=i+1;;j++){ int num=2*i; int m=j%num; if(m==0) m=num; int count=0; while(m>i){ num--; m=(m+j-1)%num; if(m==0) m=num; count++; } if(count==i){ a[i]=j; break; } } } while(~scanf("%d",&n)&&n) { printf("%d\n",a[n]); } return 0;}
很巧妙的用了模拟法,推出第一个被杀的人编号为n=j%num,那么接下来被杀的编号即为(n+j-1)%num。
但是不明白的是为什么int num=2*i;这条语句放在第一个for循环就超时,放在第二个for循环中就很快速。
0 0
- 2.2.2 Joseph
- ACM--steps--2.2.2--Joseph
- HDU2.2.2 Joseph
- poj1012 Joseph题解2
- Joseph
- joseph
- joseph
- Joseph
- Joseph
- Joseph
- Joseph
- Joseph
- Joseph
- Joseph
- Joseph
- (hdu step 2.2.2)Joseph(约瑟夫环变形问题)
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
- 【Joseph问题】poj1012 Joseph
- shell算数运算
- hdu 2091 空心三角形(输入输出)
- Android命名规范
- ListView和BaseAdapter和LayoutInflater的使用
- leetcode题解||Regular Expression Matching 问题
- 2.2.2 Joseph
- MP4文件格式的解析,以及MP4文件的分割算法
- UIApplication
- Subclipse与Subversive比较
- SSH+SecureCRT防止与服务器自动断开
- 标题:六角填数
- 动态规划
- Linux远程管理器xshell和xftp使用教程
- js获取函数的函数名称