社区讨论

求教

P1880[NOI1995] 石子合并参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mi6md7rj
此快照首次捕获于
2025/11/20 07:14
4 个月前
此快照最后确认于
2025/11/20 07:14
4 个月前
查看原帖
CPP
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n[201];
int num;
int dp_min[101];
int dp_max[101];
int sum[201];
int a[101];
int main()
{
    cin>>num;
    for(int i=1;i<=num;i++)
    {
        cin>>a[i];
        n[i]=a[i];
        n[i+num]=a[i];
        sum[i]=a[i]+sum[i-1];
    }
    for(int i=1;i<=num;i++)
       sum[i+num]=sum[i+num-1]+a[i];
    for(int i=1;i<=num;i++)
      for(int j=1;j<=num-1;j++)
      {
          if(i!=1)dp_min[j]=min(dp_min[j],dp_min[j-1]+sum[i+j]-sum[i-1]);
          else dp_min[j]=dp_min[j-1]+sum[i+j]-sum[i-1];
          dp_max[j]=max(dp_max[j],dp_max[j-1]+sum[i+j]-sum[i-1]);
      }
     cout<<dp_min[num-1]<<endl<<dp_max[num-1];
}

回复

1 条回复,欢迎继续交流。

正在加载回复...