CF1077F1 WA45求助
  • 板块学术版
  • 楼主___A__
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/11 21:28
  • 上次更新2023/11/11 22:17:41
查看原帖
CF1077F1 WA45求助
275860
___A__楼主2023/11/11 21:28

答案偏大 和题解对过 感觉对的

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e2+5,inf=1e16;
int dp[N][N],n,m,k,a[N];//dp[i][j]:前i个选j个 一定选第i个的答案
signed main(){
	cin>>n>>k>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]<0){
		    return 1;
		}
	}
	if(n/k>m){
		cout<<-1;
		return 0;
	}
	for(int i=0;i<=n;i++){
		for(int j=0;j<=m;j++){
			dp[i][j]=-inf;
		}
	}
	dp[0][0]=0;
	int ans=0;
	for(int j=1;j<=m;j++){
		for(int i=1;i<=n;i++){
			for(int num=i-1;num>=max(0ll,i-k);num--){
				dp[i][j]=max(dp[i][j],dp[num][j-1]+a[i]);
			}
			ans=max(ans,dp[i][j]);
		}
	}
	cout<<ans;
}
2023/11/11 21:28
加载中...