P13015 [GESP202506 六级] 学习小组 题解
jianghaochen117 · · 题解
题目传送门
前言
今年六级非常简单,比五级简单多了
题目思路
首先,根据根据题目要求不难分析出是
由于学习小组的人数可以重复,我们可以用完全背包解决
时间复杂度为
初始化
因为讨论积极度之和的最大值最小等于0,所以
代码
#include <iostream>
using namespace std;
const int N = 1010;
int a[N] , dp[N];//这里就不用二维数组了
int main()
{
int n , cnt = 0;
cin >> n;
for(int i = 1;i <= n;i++)
{
cin >> a[i];
}
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= i;j++)
{
dp[i] = max(dp[i] , dp[i - j] + a[j]);
}
}
cout << dp[n] << endl;
return 0;
}