4 条题解
-
1
#include <bits/stdc++.h> using namespace std; int n,c; int v[10010],w[10010],dp[110],vi,wi,si,k; int main(){ cin>>n>>c; for(int i=1;i<=n;i++){ cin>>vi>>wi>>si; for(int j=1;j<=si;j++){ k++; v[k]=vi; w[k]=wi; } } for(int i=1;i<=k;i++){ for(int j=c;j>=v[i];j--){ dp[j]=max(dp[j],dp[j-v[i]]+w[i]); } } cout<<dp[c]; return 0; }
-
-2
/*基础多重背包与01背包的不同就 是每个物品有k件而非一件 依然沿用01背包的思路,针对每个物品 做k次01背包即可 */ #include<bits/stdc++.h> using namespace std; int N,V,s[105],v[105],w[105],f[105]; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>N>>V; for(int i=1;i<=N;i++) { cin>>v[i]>>w[i]>>s[i]; } for(int i=1;i<=N;i++)//枚举所有物品 { for(int j=1;j<=s[i];j++)//枚举每一个物品的个数 { for(int k=V;k>=v[i];k--)//01背包 { f[k]=max(f[k-v[i]]+w[i],f[k]); } } } cout<<f[V]; return 0; }
-
-4
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 884
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 35
- 已通过
- 30
- 上传者