背包问题(第一次遇到)
来源:互联网 发布:犀牛门户源码 编辑:程序博客网 时间:2024/06/06 03:46
背包问题
初次接触DP,背包问题,百度百科了下,NP完全问题,这也是个值得研究的问题,;
学习来源:
http://shmilyaw-hotmail-com.iteye.com/blog/2009761
在这里就不复制这位兄台的原文了,写写我自己的,
这是他贴出来的递推公式,
图片掉不过头。。将就了,做个笔记。
//分割线 20160920
http://acm.hdu.edu.cn/showproblem.php?pid=2602
代码
#include<stdio.h>#include <memory.h>int max(int a,int b){return a>b?a:b;}int main(){int i,k,cnt,T,t,N,V;int arrVal[1024],arrV[1024],dp[1024];scanf("%d",&T);while(T-->0){memset(arrVal,0,sizeof(arrVal));memset(arrV,0,sizeof(arrV));memset(dp,0,sizeof(dp));scanf("%d %d",&N,&V);for(t=1;t<=N;t++)scanf("%d",&arrVal[t]);for(t=1;t<=N;t++)scanf("%d",&arrV[t]);//fei diguifor(i=1;i<=N;i++)//前 i 个;1 - N{for(k=V;k>=arrV[i];k--)//在总容量为 V 的情况下;V-0{//dp[]=max(不取这一个,取这一个)dp[k]=max(dp[k],dp[k-arrV[i]]+arrVal[i]);}}printf("%d\n",dp[V]);}return 0;}
标准的 01背包,用1维数组做的
//2维数组
#include<iostream>using namespace std;int dp[1000][1000];int max(int x,int y){ return x>y?x:y;}int main(){ int t,n,v,i,j; int va[1000],vo[1000]; cin>>t; while(t--) { cin>>n>>v; for(i=1;i<=n;i++) cin>>va[i]; for(i=1;i<=n;i++) cin>>vo[i]; memset(dp,0,sizeof(dp));//初始化操作 for(i=1;i<=n;i++) { for(j=0;j<=v;j++) { if(vo[i]<=j)//表示第i个物品将放入大小为j的背包中 dp[i][j]=max(dp[i-1][j],dp[i-1][j-vo[i]]+va[i]);//第i个物品放入后,那么前i-1个物品可能会放入也可能因为剩余空间不够无法放入 else //第i个物品无法放入 dp[i][j]=dp[i-1][j]; } } cout<<dp[n][v]<<endl; } return 0;}原文:http://www.cnblogs.com/Su-Blog/archive/2012/08/28/2659872.html(感激不尽这位仁兄)
1 0
- 背包问题(第一次遇到)
- 01背包问题 第一次DP
- 杭电2602(01背包问题)——第一次做背包问题的理解
- 第一次遇到这样的问题
- 第一次登陆scott遇到的问题
- 第一次使用spen可能遇到的问题
- 第一次做WebService对接遇到的问题
- hibernate 第一次学习遇到的问题
- 第一次接触Weblogic遇到的问题
- 第一次配置wampserver遇到的一些问题
- Hi3531第一次调试 遇到的问题。
- 第一次安装oracle遇到的问题
- 第一次配置树莓派遇到的问题
- 第一次项目遇到的问题,及总结。
- 第一次写项目遇到的问题
- 第一次使用Lubuntu遇到的问题
- 第一次用SVN遇到的问题
- 第一次mysql遇到的问题的解决
- 简单工厂和工厂方法模式的比较
- Preparing for an Interview (Facebook)
- Hadoop学习闲谈
- android 6.0 权限
- Codeforces Round #363(Div. 2) A. Launch of Collider【模拟】 && B. One Bomb【暴力】
- 背包问题(第一次遇到)
- leetcode 26. Remove Duplicates from Sorted Array
- CSS布局——BFC
- 时间工具类,DateUtil各种好用
- 滑动界面改变toolbar
- 常用开源jar包的maven坐标以及常用仓库地址
- 安装centOS 7双系统(二)——安装过程step by step
- 缓存与数据库一致性保证
- Can't use Subversion command line client: svn