题意:有k个好人和k个坏人 他们排成一列 并且规则是 前k个为好人 后k个为坏人 让你把后k个坏人除去 有一个条件是k个好人 都存在。
#include<stdio.h>
#include<string.h>
int ans[15]={0};
int main()
{
int k;
int m=6;
int pNum[30];
while(scanf("%d",&k),k)
{
/* if(ans[k]!=0)
{
printf("%d\n",ans[k]);
continue;
}
*/把这段删除 会超时。哎..数据挺诡异滴
memset(pNum,0,sizeof(pNum));
m=k;
for(int i=1; i<=k; i++)
{
pNum[i]=(pNum[i-1]+m-1)%(2*k-i+1);
if(pNum[i]<k)
{
i=0;
m++;
}
}
ans[k]=m;
printf("%d\n",m);
}
return 0;
}