P1145 约瑟夫
代码:
#include<bits/stdc++.h>
using namespace std;
int a[1001],n;
int hsg(int x)
{
for(int i=x;i<=(x-1)*2;i++)if(a[i]!=-1)return false;
return true;
}
int ysf(int x)
{
int l=x;
while(1)
{
a[l]=-1;
if(l%(n*2)<=n)return false;
for(int i=1;i<=x;i+=(a[i]!=-1))
{
l++;
}
l%=(n*2);
if(hsg(n/2+1)==true)return true;
}
}
int main()
{
cin>>n;
for(int i=n/2+1;;i++)
{
if(ysf(i)== true)
{
cout<<i;
return 0;
}
}
return 0;
}
就硬卡着,啥也不输,猜测不是超时而是死循环