P1145 求助枚举优化
  • 板块学术版
  • 楼主__Cow__
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/23 15:59
  • 上次更新2023/10/27 14:00:59
查看原帖
P1145 求助枚举优化
589272
__Cow__楼主2022/8/23 15:59
#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

2022/8/23 15:59
加载中...