问题标题: 酷町堂:3228

0
0
已解决
曹博扬
曹博扬
初级天翼
初级天翼
#include <iostream>
#include <cstring>
using namespace std;
int n,a,b,m;
int x[100005];
long long f[1000005];
int main(){
	cin>>n;
	cin>>a>>b;
	for(int i=0;i<=n;i++)
		cin>>x[i];
	for(int i=a;i<n+b;i++){
		long long p=-0x3f3f3f3f;
		for(int j=i-b;j<=i-a;j++){
			if(j>=0)
				p=max(p,f[j]);
		}
		f[i]+=p;
		f[i]+=x[i];
	}
	long long maxn=-0x3f3f3f3f;
	for(int i=n;i<n+b;i++)
		maxn=max(f[i],maxn);
	cout<<maxn;
	return 0;
}

70分,找错

曹博扬在2021-06-03 17:45:55追加了内容

@朱优扬 @陈九林 @丁天行 

快!!!


0
0
0
陈九林
陈九林
高级守护
高级守护

你重新发个贴,我把递推式给你(只给递推式,不给完整代码,勿举报!)。

0
陈九林
陈九林
高级守护
高级守护

@曹博扬,发你QQ行吗?

0
陈九林
陈九林
高级守护
高级守护

(悄悄告诉你,你的思路错了,用数塔的思想,倒着推)

我要回答