与0/1背包问题不同的是,每个物品可以任意次放,只要小于总容量就行,这里打印装进去的物品,还打印每种物品装了多少次
代码如下:
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main(int argc, char** argv)
{
cout<<"完全背包问题"<<endl<<endl<<"输入背包总容量"<<endl;
size_t Capacity;
cin>>Capacity;
cout<<"输入物品总数目"<<endl;
size_t num;
cin>>num;
cout<<"输入物品的体积和价值"<<endl;
vector<int> vol;
vector<int> val;
int temp1,temp2;
size_t i=0,j=0;
for(i=0;i<num;++i)
{
cin>>temp1>>temp2;
vol.push_back(temp1);
val.push_back(temp2);
}
vector<int> result(Capacity+1,0);
vector<int> print(Capacity+1,-1); //输出装进去的物品
int temp;
for(i=0;i<num;+&