poj 1012 Joseph(约瑟夫环)

来源:互联网 发布:赚钱的交友软件 编辑:程序博客网 时间:2024/05/17 07:18

原文:http://blog.acmj1991.com/?p=699

题意:有2*k个人按照约瑟夫环的规则往外踢人,问当m为多少时能保证后k个人都在前k个人之前被踢

思路:暴力打表

#include<stdio.h>#include<string.h>#include<iostream>using namespace std;bool jo(int k,int m){int len=2*k,s=0;while(len>k){s=(s+m-1)%len;if(s<k)return false;len--;}return true;}int main(){int n,f[15];for(int k=1;k<14;k++)for(int m=k+1;1;m+=(k+1))if(jo(k,m)){f[k]=m;break;}else if(jo(k,m+1)){f[k]=m+1;break;}while(scanf("%d",&n)&&n)printf("%d\n",f[n]);}

原创粉丝点击