3 条题解
-
5
#include <bits/stdc++.h> using namespace std; int m,total;//m:件数,total:总金额 int zw[40000],zv[40000];//主件金额,主件价值(金额*重要度) int fw[40000][4],fv[40000][3];//附件金额,附件价值 int dp[40000],v,p,q;//dp:存储在i件物品的背包容量为j的情况下的最大价值 int main(){ int i,j; cin>>total>>m; //循环m件物品 for(i = 1;i <= m;i++){ cin>>v>>p>>q; //如果是主件 if(q == 0){ zw[i] = v;//价格 zv[i] = v * p;//价值度(价格*重要) }else{ //第q个物品的附件个数 fw[q][0]++; fw[q][fw[q][0]]=v;//第几个主件的价格 fv[q][fw[q][0]]=v*p;//附件价值(价格*重要) } } //循环m个物品 for(i = 1;i <= m;i++){ //按背包的逻辑循环从总价格开始循环到每个主件的价格 for(j = total;j >= zw[i];j--){ //在能装下这个物品的情况下,讨论:只要主件,主件+附件1,主件+附件2,主件+附件12 //情况1:只要主件 dp[j] = max(dp[j],dp[j-zw[i]]+zv[i]); //情况2:主件+附件1 if(j>=zw[i]+fw[i][1]) dp[j]=max(dp[j],dp[j-zw[i]-fw[i][1]]+zv[i]+fv[i][1]); //情况3:主件+附件2 if(j>=zw[i]+fw[i][2]) dp[j]=max(dp[j],dp[j-zw[i]-fw[i][2]]+zv[i]+fv[i][2]); //情况4:主件+附件12 if(j>=zw[i]+fw[i][1]+fw[i][2]) dp[j]=max(dp[j],dp[j-zw[i]-fw[i][1]-fw[i][2]]+zv[i]+fv[i][1]+fv[i][2]); } } cout<<dp[total]; return 0; }
-
1
#include<bits/stdc++.h> using namespace std; int n,m,f[32007],v[70][4],w[70][4],num[70]; int main() { cin>>n>>m; for (int i=1;i<=m;i++) { int v1,p,q; cin>>v1>>p>>q; if (q>0) v[q][++num[q]]=v1,w[q][num[q]]=v1*p; else v[i][0]=v1,w[i][0]=v1*p; } for (int i=1;i<=m;i++) for (int j=n;j>=v[i][0];j--) { f[j]=max(f[j],f[j-v[i][0]]+w[i][0]); if (j>=v[i][0]+v[i][1]) f[j]=max(f[j],f[j-v[i][0]-v[i][1]]+w[i][0]+w[i][1]); if (j>=v[i][0]+v[i][2]) f[j]=max(f[j],f[j-v[i][0]-v[i][2]]+w[i][0]+w[i][2]); if (j>=v[i][0]+v[i][1]+v[i][2]) f[j]=max(f[j],f[j-v[i][0]-v[i][1]-v[i][2]]+w[i][0]+w[i][1]+w[i][2]); } cout<<f[n]; return 0; }
-
0
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 816
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 52
- 已通过
- 28
- 上传者