错误求指点
查看原帖
错误求指点
504142
micmic楼主2022/3/27 17:08
```c
#include<iostream>
using namespace std;

int N;		//人数 (物品数) 
int M;		//探查间谍 
int X;		//钱(背包容量) 
int A[1005];	//得到的资料数(物品价值) 
int B[1005];	//伪装能力 
int C[1005];	//工资(物品重量) 
int dp[1005];	//j工资去雇人的价值 
int MyM;	   //当前人的伪装能力 

//求能拿到的最大资料(最大价值) 

int main(){
	cin>>N>>M>>X;
	for(int i=1;i<=N;i++)
		cin>>A[i]>>B[i]>>C[i];
		
	for(int i=1;i<=N;i++){
		for(int j=X;j>=0;j--){
			if(C[i]<=j && B[i]+MyM<=M){
				dp[j]=max(dp[j],dp[j-C[i]]+A[i]);
				if(dp[j]==dp[j-C[i]]+A[i]) MyM+=B[i];
			}
				
		}
	} 
	
	cout<<dp[X];
}
2022/3/27 17:08
加载中...