• 板块学术版
  • 楼主QWQ_jyc
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/2/2 11:31
  • 上次更新2023/10/24 02:05:35
查看原帖
760850
QWQ_jyc楼主2023/2/2 11:31

背包模板题。

山洞里面的钻石数量庞大,但品质参差不齐,已知每个钻石的重量 wi 和价值 vi 。你随身携带的布袋承重量上限是 L , 由于你身上没有可以切割钻石的工具,因此只能将完整的钻石装入布袋。

编程求最多能带走总价值多少的钻石?

#include<bits/stdc++.h>
using namespace std;
long long n,l;
long long dp[11451][11451],w[114514],v[114514];
int main(){
  	cin>>n;
  	cin>>l;
  	for(int i=1;i<=n;i++)cin>>w[i]>>v[i];
  	for(int i=1;i<=n;i++){
  		if(j>=w[i])
  			dp[1][i]=w[1];
	}
  		for(int j=1;j<=l;j++){
  			if(w[i]>j)
  				dp[i][j]=dp[i-1][j]
  			else
  				dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
		}
	}
  	cout<<dp[n][l];
  	return 0;
}
2023/2/2 11:31
加载中...