1 条题解

  • 0
    @ 2025-8-5 15:55:59
    #include<bits/stdc++.h>
    using namespace std;
    long long T,n,a[205],dp[105][105],sum[105];
    int main(){
    	cin>>T;
    	for(int ncase=1;ncase<=T;ncase++){
    		cin>>n;
    		memset(sum,0,sizeof(sum));
    		for(int i=1;i<=n;++i){
    			cin>>a[i];
    			sum[i]=a[i]+sum[i-1];
    		}
    		for(int len=1;len<=n;len++){
    			for(int i=1;i+len-1<=n;i++){
    				int j=i+len-1;
    				dp[i][j]=sum[j]-sum[i-1];
    				for(int k=i;k<j;k++){
    					long long t=max(sum[k]-sum[i-1]-dp[k+1][j],sum[j]-sum[k]-dp[i][k]);
    					dp[i][j]=max(dp[i][j],t);
    				}
    			}
    		}
    		cout<<"Case "<<ncase<<": "<<dp[1][n]<<endl;
    	}
    	return 0;
    }
    

    信息

    ID
    2798
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    94
    已通过
    18
    上传者