单测试点时限: 2.0 秒
内存限制: 256 MB
已知 n 个物体 1,2,3,…,n 与一个背包。物体 i 的重量为 Wi>0,价值为 Pi>0 (i=1,2,…,n),背包容量为 M>0。
求在不超过背包容量的情况下,使得装进去的物体的价值最高。
输入
第一行为一个正整数 T,表示有几组测试数据。
每组测试数据的第一行为两个整数 n 和 M,0<n≤20,0<M<100000。
再下去的 n 行每行有两个整数 Wi,Pi,0<Wi,Pi<10000。
输出
对于每组测试数据,输出一行,只含一个整数,表示装进去物体的价值最高值。
样例
input
1
5 10
2 6
2 3
6 5
5 4
4 6
output
15
题目大意:
01背包。
题目解析:
第二次遇到01背包问题,这次算是完全弄明白了。
01背包核心代码:
for(int i=1;i<=n;i++){
for(int j=1;j<=M;j++){
if(j<weight[i])
dp[i][j]