一、题目描述:
你爬山途中发现了一些值钱的钻石,并且每个钻石都有对应的重量和价值。你想在你的背包能放下的前提下,尽可能多的去拿最值钱的钻石。
二、具体分类(只列举三种):
- 普通背包:每个物品至多放一个。
- 无限背包:每个物品可以有无数个。
- 多重背包:有的物品只能放一个,有的物品可以放多个
三、具体过程
给定物品数量n背包容量m,n行数据,每行2个值(重量,价值)。
int n,m;
cin>>n>>m;
int dp[n][2];//int dp[n][3];
int sum[m+1];//sum是背包 表示容量分别为1~m。
for(int i=0;i<n;i++){
cin>>dp[i][0]>>dp[i][1];
}//输入