极限时间 求证明
查看原帖
极限时间 求证明
1017495
chenhaiyang楼主2024/9/29 17:51
#include <iostream>
#include <math.h>
#include <algorithm>
#include <cstring>

using namespace std;
typedef long long LL;

const int N=110;

int n;
int f[N][N];
int a[N*N*N];
bool st[N];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=n+1;i<=n*n*n;i++)a[i]=a[i-n];
    int ans=0;
    for(int i=1;i<=n;i++)//枚举起点
    {
        memset(st,false,sizeof st);
        int idx=0,s=0;
        for(int j=i;j<=n*n*n;j++)
        {
            if(st[a[j]])continue;
            idx++;
            if(a[j]==idx)
            {
                st[idx]=true;
                idx=0;
                s+=a[j];
            }
        }
        ans=max(ans,s);
    }
    cout << ans;
    return 0;
}



2024/9/29 17:51
加载中...