30分,玄关
查看原帖
30分,玄关
1176398
xuyixuan_123楼主2025/7/21 18:52

评测记录

#include<bits/stdc++.h>
using namespace std;
int n,m,f[70][32010],v[70][3],w[70][3],a,p,q;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>a>>p>>q;
		if(q){
			if(v[q][1]){
				v[q][3]=a;
				w[q][3]=p;
			}
			else{
				v[q][2]=a;
				w[q][2]=p;
			}
		}
		else{
			v[i][1]=a;
			w[i][1]=p;
		}
	}
	for(int i=1;i<=m;i++){
		for(int j=n;j>=0;j--){
			f[i][j]=f[i-1][j];
			if(j>=v[i][1])f[i][j]=max(f[i][j],f[i-1][j-v[i][1]]+v[i][1]*w[i][1]);
			if(j>=v[i][1]+v[i][2])f[i][j]=max(f[i][j],f[i-1][j-v[i][1]-v[i][2]]+v[i][1]*w[i][1]+v[i][2]*w[i][2]);
			if(j>=v[i][1]+v[i][3])f[i][j]=max(f[i][j],f[i-1][j-v[i][1]-v[i][3]]+v[i][1]*w[i][1]+v[i][3]*w[i][3]);
			if(j>=v[i][1]+v[i][2]+v[i][3])f[i][j]=max(f[i][j],f[i-1][j-v[i][1]-v[i][2]-v[i][3]]+v[i][1]*w[i][1]+v[i][2]*w[i][2]+v[i][3]*w[i][3]);
		}
	}
	cout<<f[m][n]; 
	return 0;
}
2025/7/21 18:52
加载中...