#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
/**网易第三题:牛牛的背包*/
void niuPack()
{
int n;
int w;
cin>>n>>w;
vector<int> vct;
int wi;
for(int i=0;i<n;i++)
{
cin>>wi;
vct.push_back(wi);
}
vector<vector<int> > f;
for(int i=0;i<=n;i++)
{
vector<int> temp;
for(int j=0;j<=w;j++)
temp.push_back(1);
f.push_back(temp);///初始化为1
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=w;j++)
{
if(j<vct[i-1])//不能放进去
{
f[i][j] = f[i-1][j];
//cout<<f[i][j]<<" ";
//f[i][j] = pow(2.0,i-1);
}
else
{
f[i][j] = f[i-1][j-vct[i-1]] + f[i-1][j];
//cout<<f[i][j]<<" ";
//f[i][j] = pow(2.0,i);
}
}
}
//for(int j=0;j<=n;j++)
//{
// for(int i=0;i<=w;i++)
// cout<<f[j][i]<<" ";
// cout<<endl;
//}
cout<<f[n][w]<<endl;
}
int main()
{
/**网易第三题:牛牛的背包*/
niuPack();
return 0;
}
网易2018笔试编程题3——牛牛的背包
最新推荐文章于 2020-10-20 19:50:50 发布