社区讨论
求教
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 条回复,欢迎继续交流。
正在加载回复...