#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <string>
using namespace std;
int k,m;
bool a[1000],b[1000];
bool flag=1;
void zero()
{
for (int i=1;i<=k;i++)
{
a[i] = 0;
}
}
int main()
{
scanf ("%d", &k);
k = k*2;
for (int i=1;i<=k/2;i++)
{
b[i] = 1;
}
int i=2;
while(1)
{
int s=1;
int f=0;
flag = 1;
for (int j=1;;j++)
{
while (a[s]==1) s+=1;
while (f<i-1)
{
if (s>k) s=1;
if (a[s]==1)
{
s+=1;
continue;
}
s+=1;
f+=1;
}
while (a[s]==1) s+=1;
if (s>k) s=1;
f=0;
a[s]=1;
if (b[s]==1)
{
zero();
flag = 0;
break;
}
if (j==k/2)
{
printf ("%d\n", i);
return 0;
}
}
i+=1;
}
}
枚举代码,
https://www.luogu.com.cn/record/84881781
三个TLE,似乎12就不行了,求助QAQ