[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; }