POJ 1012(约瑟夫问题)
2014-07-22 08:43
218 查看
我是直接模拟的,因为实在想不到什么好办法,不过看到0<k<14
,
俗话说得好,不管黑猫白猫,抓到老鼠的就是好猫。
于是在自家电脑模拟,打个表,就AC了。
至于还有没有其他方法,有待研究,大家有什么好方法,请赐教,谢谢!
1、模拟:
方法是,m从2开始判断,在1,2,3,······,2k中,每次找到第m个数,判断如果是大于k的,
那么后面的数就向前移,否则m++,直至找到这样的m,使得找出的k个数都是大于k,
这个m就是要找的最小的m。(也可以使用链表,不过本人还没学过链表,所以不在这介绍了,
可参考百度百科:http://baike.baidu.com/view/213217.htm?fr=aladdin
#include<stdio.h>
int main()
{
int k,m,i,n,x,j;
int a[27];
bool bo;
scanf("%d",&k);
while(k)
{
for (i=1;i<=2*k;i++) a[i]=i;
m=1;
bo=false;
while(!bo)
{
m++;x=1;bo=true;
for (i=2*k;i>=k+1;i--)
{
n=m%i;
if (n==0) n=i;
n=(n+x-1)%i;
if (n==0) n=i;
if (a
<=k)
{
bo=false;
break;
}
for (j=n;j<i;j++) a[j]=a[j+1];
x=n;
}
}
printf("%d\n",m);
scanf("%d",&k);
}
return 0;
}
2、绝对0s算法:
#include<stdio.h>
int main()
{
int k,a[13]={2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
scanf("%d",&k);
while(k)
{
printf("%d\n",a[k-1]);
scanf("%d",&k);
}
return 0;
}
题目来自:http://poj.org/problem?id=1012
,
俗话说得好,不管黑猫白猫,抓到老鼠的就是好猫。
于是在自家电脑模拟,打个表,就AC了。
至于还有没有其他方法,有待研究,大家有什么好方法,请赐教,谢谢!
1、模拟:
方法是,m从2开始判断,在1,2,3,······,2k中,每次找到第m个数,判断如果是大于k的,
那么后面的数就向前移,否则m++,直至找到这样的m,使得找出的k个数都是大于k,
这个m就是要找的最小的m。(也可以使用链表,不过本人还没学过链表,所以不在这介绍了,
可参考百度百科:http://baike.baidu.com/view/213217.htm?fr=aladdin
#include<stdio.h>
int main()
{
int k,m,i,n,x,j;
int a[27];
bool bo;
scanf("%d",&k);
while(k)
{
for (i=1;i<=2*k;i++) a[i]=i;
m=1;
bo=false;
while(!bo)
{
m++;x=1;bo=true;
for (i=2*k;i>=k+1;i--)
{
n=m%i;
if (n==0) n=i;
n=(n+x-1)%i;
if (n==0) n=i;
if (a
<=k)
{
bo=false;
break;
}
for (j=n;j<i;j++) a[j]=a[j+1];
x=n;
}
}
printf("%d\n",m);
scanf("%d",&k);
}
return 0;
}
2、绝对0s算法:
#include<stdio.h>
int main()
{
int k,a[13]={2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
scanf("%d",&k);
while(k)
{
printf("%d\n",a[k-1]);
scanf("%d",&k);
}
return 0;
}
题目来自:http://poj.org/problem?id=1012
相关文章推荐
- poj 1012 约瑟夫问题
- poj-1012-约瑟夫问题
- POJ 1012 && HDU 1443 Joseph(约瑟夫问题)
- POJ-1012 Joseph-约瑟夫问题好人坏人
- poj 1012 Joseph (约瑟夫问题)
- poj 1012 Joseph (约瑟夫问题)
- poj 1012(约瑟夫问题。。。)
- POJ 1012 约瑟夫问题
- POJ 1012 约瑟夫问题
- POJ-1012 约瑟夫问题
- 约瑟夫问题及变形:poj 1012
- POJ 1012 Joseph 约瑟夫问题
- poj 1012 Joseph 约瑟夫问题 (★★☆☆☆)
- 【原】 POJ 1012 Joseph 约瑟夫 解题报告
- poj 2359 Questions 约瑟夫问题
- poj1021 约瑟夫问题 利用数学公式
- POJ-2244 约瑟夫问题
- poj 1781(约瑟夫问题二进制求解。。。。)
- POJ 2244 再谈约瑟夫问题
- 【Joseph问题】poj1012 Joseph