全RE0分求助!!
查看原帖
全RE0分求助!!
450181
caoyifan111楼主2021/11/25 22:12
#include<bits/stdc++.h>
using namespace std;
int n,m,v[62],p[62],q[62],d[61][32001];
int l[62];
int dp(int i,int j){
	if(d[i][j]!=-1)return d[i][j];
	if(j>n)return 0;
	int res;res=dp(i+1,j);
	if(q[i]==0&&j+v[i]<=n){
		l[i]=1;
		res=max(res,dp(i+1,j+v[i])+v[i]*p[i]);
	}
	else if(l[q[i]]==1&&j+v[i]<=n){
		res=max(res,dp(i+1,j+v[i])+v[i]*p[i]);
	}
	d[i][j]=res;
	return res;
}
int main(){
	cin>>n>>m;
	memset(d,-1,sizeof(d));
	for(int i=1;i<=m;i++)cin>>v[i]>>p[i]>>q[i];
	cout<<dp(1,0);
	return 0;
} 

检查过了,数组没有越界

2021/11/25 22:12
加载中...