比赛 ZLXOI2015Day1 评测结果 WWAAAAATTT
题目名称 燃灵之链 最终得分 50
用户昵称 Skyo 运行时间 3.220 s
代码语言 C++ 内存使用 0.40 MiB
提交时间 2015-10-29 10:55:38
显示代码纯文本
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

int n, m, ans, f[10005], a[10005], b[10005];

int main()
{
	freopen("KPengshuangcang.in", "r", stdin);
	freopen("KPengshuangcang.out", "w", stdout);
	
	scanf("%d %d", &n, &m);
	for(int i = 1; i <= n; i++) 
	{
		scanf("%d", a+i);
		b[i] = a[i] + b[i-1];
	}
	
	for(int i = 1; i <= n; i++)
	{
		int mn = b[i-1];
		for(int j = i-1; j >= 0; j--) mn = min(mn, b[j]);
		f[i] = b[i] - mn;
	}
	
	for(int i = 2; i <= m; i++)
	for(int j = n; j >= 1; j--)
	{
		int mx = a[j], sum = a[j];
		f[j] = a[j] + f[j-2]; 
		for(int k = j-1; k >= 2; k--)
		{
			mx = max(mx, sum+=a[k]);
			f[j] = max(f[j], f[k-2]+mx);
		}
	}
	
	for(int i = m*2; i <= n; i++) ans = max(ans, f[i]);
	printf("%d", ans);
	return 0;
}