全WA求调
查看原帖
全WA求调
1115386
dingxiangqian楼主2025/6/21 09:20
#include<iostream>
#include<cstring>
using namespace std;
int a[110],dp1[110][110]/*max*/,dp2[110][110]/*min*/,sum[110];
int main()
{
    int n;
    cin>>n;
    memset(dp2,0x3f,sizeof(dp2));
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum[i]=sum[i-1]+a[i];
    }
    for(int i=1;i<=n;i++)
    {
        dp1[i][i]=0;
        dp2[i][i]=0;
    }
    for(int i=2;i<=n;i++)
    {
        for(int j=1;j+i-1<=n;j++)
        {
            int m=i+j-1;
            for(int k=j;k<m;k++)
            {
                dp2[j][m]=min(dp2[j][m],dp2[j][k]+dp2[k+1][m]+sum[m]-sum[j-1]);
                dp1[j][m]=max(dp1[j][m],dp1[j][k]+dp1[k+1][m]+sum[m]-sum[j-1]);
            }
        }
    }
    cout<<dp2[1][n]<<endl<<dp1[1][n];
}
2025/6/21 09:20
加载中...