专栏文章

P13015 [GESP202506 六级] 学习小组 题解

P13015题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miozwt2d
此快照首次捕获于
2025/12/03 03:53
3 个月前
此快照最后确认于
2025/12/03 03:53
3 个月前
查看原文
前言
今年六级非常简单,比五级简单多了
题目思路
首先,根据根据题目要求不难分析出是dpdp
由于学习小组的人数可以重复,我们可以用完全背包解决
时间复杂度为O(O( n2n^2 )),不会TLE
初始化
因为讨论积极度之和的最大值最小等于0,所以dpdp的初值全为0即可
代码
CPP
#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;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...