[PKU] 1012 Joseph [约瑟夫环,枚举]
题目来源:PKU 1012 [Central Europe 1995]
简单分析:因为这题时间和内存都卡得比较紧,也实在没其他有效的办法,但结果的数据量却不大,容易枚举出来。
AC代码如下:
#include<stdio.h>
void init()
{
int k,i,m,n,r,t;
for(k=1;k<14;++k) {
if(k==1) printf("2,");
else {
r=0;
for(i=k+1;r!=k;++i) {
m=2*k;
r=0;
n=i%m;
if(n==0) n=m;
while(n>k) {
r++;
if(r==k) break;
t=n;
n=i%(m-1);
if(t+n<=m) n=t+n-1;
else n=t+n-m;
m--;
}
}
printf("%d,",i-1);
}
}
}
int a[]={2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
int main()
{
// init();
int k;
while(scanf("%d",&k)!=EOF&&k) {
printf("%d\n",a[k-1]);
}
return 0;
}

浙公网安备 33010602011771号