01背包 HDU 2602
来源:互联网 发布:dw是什么软件 编辑:程序博客网 时间:2024/05/22 05:20
题意:给你N个物品和V的容积,对于N个物品,下面对应N个物品的价值,再下面N个数对应每个物品占的体积
求我们能得到的最大价值。
标准的01背包题。也可以通过这个题对01背包入门练习。
dp的初始化是我们不能忽略的一个问题。
这样理解就好,任何容量的背包都有一个合法解,就是什么都不装 的时候,这个解的价值就为0,所以初始时的状态的值也就全部为0了。
dp[i]表示i体积我们能得到的最大价值是多少
#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;int main(){ int t; scanf("%d",&t); while(t--) { int n,V; int v[1005]; int c[1005]; int dp[1005]; memset(dp,0,sizeof(dp)); //初始化所有为0 scanf("%d%d",&n,&V); for(int i=0;i<n;i++) { scanf("%d",&c[i]); } for(int i=0;i<n;i++) { scanf("%d",&v[i]); } for(int i=0;i<n;i++) { for(int j=V;j>=v[i];j--)//倒序遍历,区别完全背包的地方 { dp[j]=max(dp[j],dp[j-v[i]]+c[i]); }//用这个题来模拟第二层for循环结束之后,dp[j]中的值是多少,多模拟就可以明白的。 } printf("%d\n",dp[V]); }}
以此类推,我们就可以知道答案了。
0 0
- HDU 2602 01背包
- 01背包 HDU 2602
- HDU 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- hdu 2602 01背包
- hdu 2602 背包问题之01背包
- 刷背包之01背包- HDU 2602
- hdu 2602 01背包,hdu 1114 完全背包
- DP 01背包 hdu 2602
- hdu 2602 DP 01背包
- hdu 2602 01背包DP
- hdu 2602 大水01背包
- hdu 2602 (01背包)
- hdu 2602(01背包)
- hdu 2602(01背包)
- HDU 2602(01背包)
- hdu 2602 基础01背包
- Spring ContextLoaderListener与DispatcherServlet所加载的applicationContext的区别
- larave 5 could not be opened: failed to open stream: Permission denied
- java 基本型数据的默认值--有道笔记整理
- 开源图像检索工具:Caliph&Emir使用方法
- android broadcast--有道笔记整理
- 01背包 HDU 2602
- 使用暗码启动内置APK
- content:特征点和特征描述子
- VC++动态链接库编程之MFC DLL
- 面试时最常被问到的65个问题和技巧性回答(第一篇)
- 工作一个月关于移动web开发的感悟与理解
- android 开发常识
- AndroidManifest.xml各个配置项的详解--有道笔记整理
- 常见异常解释及解决办法