poj 1012

来源:互联网 发布:mac照片导出到移动硬盘 编辑:程序博客网 时间:2024/06/03 19:43

利用打表来节省时间,约瑟夫问题的变体;

#include<stdio.h>
int result[1000]={0};
bool text(int k,int m)
{
int i,t=0,curr=2*k;//sum people
for(i=1;i<=k;i++)
{
t=(t+m-1)%curr;
curr--;
if(t<k)return false;
}
return true;
}
void db()
{
int k,m;
for(k=1;k<14;k++)
for(m=k+1;;m++)
if(text(k,m)==true)
{
result[k-1]=m;
break;
}
}
int main()
{
int k;
db();
while(scanf("%d",&k)!=EOF){
  printf("%d\n",result[k-1]);
 }

}

0 0
原创粉丝点击