csp50挂零求助
查看原帖
csp50挂零求助
469213
SugarKite楼主2024/11/4 20:08

rt,交洛谷官方数据50,实际0分

记录

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=5050;
int t,n,m,ans;
int dp[N][N][3],a[N];
inline void init(int n){
    ans=0;
    for(int i=0;i<=n;i++){
        for(int j=0;j<=n;j++){
            dp[i][j][0]=dp[i][j][1]=-0x3f3f3f3f;
        }
    }
    dp[0][0][0]=0;
}
signed main(){
    // printf("%lld\n",((1==1)?1:0));
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    scanf("%lld",&t);
    while(t--){
        scanf("%lld",&n);
        init(n);
        // dp[0][0]=0;
        for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
        for(int i=1;i<=n;i++){
            int now=i&1;
            for(int k=0;k<=i-1;k++){
                dp[i][k][now]=max(dp[i][k][now],dp[i-1][k][now^1]+((a[i]==a[i-1])?a[i]:0));
                dp[i-1][i][now]=max(dp[i-1][i][now],dp[i-1][k][now^1]+((a[i]==a[k])?a[i]:0));
                dp[i][i-1][now]=max(dp[i][i-1][now],dp[k][i-1][now^1]+((a[i]==a[k])?a[i]:0));
                dp[k][i][now]=max(dp[k][i][now],dp[k][i-1][now^1]+((a[i]==a[i-1])?a[i]:0));
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                ans=max(ans,dp[i][j][n&1]);
                ans=max(ans,dp[j][i][n&1]);
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}
2024/11/4 20:08
加载中...