物品装箱问题
来源:互联网 发布:怪物猎人3数据库 编辑:程序博客网 时间:2024/05/17 00:05
物品装箱问题
Description
设有
另外,对应于每个
本题的任务是:选择这
装填的第
Input
第一行:
第二行:
第三行:
……
第
Output
只有一个数为最大的价值
Sample Input
4 20
8 20 12 31
2 3 9 20
13 31 11 12
8 9 13 36
Sample Output
40
Solution
背包问题,只是在选与不选的基础上多了选哪一个。
Code
#include <iostream>#include <cstdio>#define Max(x,y) ((x)>(y)?(x):(y))#define Min(x,y) ((x)<(y)?(x):(y))using namespace std;int n,tot,ans;int a[110],b[110];int va[110],vb[110];int f[110][10010];int main(){ freopen("box.in","r",stdin); freopen("box.out","w",stdout); scanf("%d%d",&n,&tot); for(int i=1;i<=n;i++)scanf("%d%d%d%d",&a[i],&va[i],&b[i],&vb[i]); for(int i=1;i<=n;i++){ for(int j=0;j<=tot;j++){ f[i][j]=f[i-1][j]; if(j<b[i]&&j>=a[i])f[i][j]=Max(f[i][j],f[i-1][j-a[i]]+va[i]); else if(j<a[i]&&j>=b[i])f[i][j]=Max(f[i][j],f[i-1][j-b[i]]+vb[i]); else if(j>=a[i]&&j>=b[i])f[i][j]=Max(f[i][j],Max(f[i-1][j-a[i]]+va[i],f[i-1][j-b[i]]+vb[i])); ans=Max(ans,f[i][j]); } } printf("%d\n",ans); return 0;}
0 0
- 物品装箱问题
- 物品装箱问题
- [sql server] 物品装箱问题
- 物品装箱问题(文件名:box.c/cpp/pas)
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- 装箱问题
- Sorting function in Python
- javaWeb程序的web.xml的作用
- cat、less、more
- 静态内部类
- Fresco library "libwebp.so" not found
- 物品装箱问题
- Android APP安装后不在桌面显示图标的应用场景举例和实现方法
- ERR_print_errors_fp(stdout)
- Floyd - Warshall 算法
- 关于机器学习必须要了解的几个要点(A Few Useful Things to Know about Machine Learning)
- 关于表单类元素的兼容问题
- listview优化
- Python学习-yield浅析和send()函数
- Effective Java读书笔记