sos!!!!!!为什么90??????

P1858 多人背包

请记住一件事:(和这题无关)01背包的核心C++代码: ```cpp #include<bits/stdc++.h> using namespace std; ifstream in("beibao0.in"); ofstream out("beibao0.out"); int n,c; int w[1001];//重量:付出的代价:包子 float v[1001];//价值:得到的利润:挣钱 float f[1001][5000];//f[i][j]表示前i件物品总重量为j的 //int ya[5000];//压缩后只剩下重量j void read() { int i,j,k; in>>n; for(i=1;i<=n;i++)//单行读入重量 in>>w[i]; for(i=1;i<=n;i++)//等重量读完,再读价值 in>>v[i]; in>>c;//读入总重量:总包子数 //边界:前0件物品总重量 for(i=0;i<=n;i++)//表示重量 f[0][i]=0; //总重量是0,一共有0:--n //for(i=0;i<=n;i++)//i表示物品最大到n //f[i][0]=0; //友情提示:以上两条语句可以不写 ,因为全局变量默认都是0 //0件物品,重量是0都写过了 for(i=1;i<=n;i++)//前i件物品 for(j=1;j<=c;j++)//总重量为j { f[i][j]=f[i-1][j]; if(j>=w[i]&&f[i][j]<f[i-1][j-w[i]]+v[i]) f[i][j]=f[i-1][j-w[i]]+v[i]; } out<<f[n][c]<<endl; ```
by ‘装逼之王’ @ 2017-10-30 20:44:39


|