01背包
来源:互联网 发布:手机网页游戏平台源码 编辑:程序博客网 时间:2024/06/05 01:56
一维01背包:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct ppp{ int w; int v;}data[105];int dp[1005];int T,m;int OneZeroPack(){ memset(dp,0,sizeof(dp)); for(int i=1;i<=m;i++) { for(int j=T;j>=data[i].w;j--) { dp[j]=max(dp[j],dp[j-data[i].w]+data[i].v); } } return 0;}int main(){ while(cin>>T>>m) { for(int i=1;i<=m;i++) cin>>data[i].w>>data[i].v; OneZeroPack(); cout<<dp[T]<<endl; } return 0;}
二维01背包:
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;int w[105];//质量int p[105];//价值int dp[105][1005];int main(){ int t,m; while(cin>>t>>m) { memset(dp,0,sizeof(dp)); for(int i=1; i<=m; i++) { cin>>w[i]>>p[i]; } for(int i=0;i<=m;i++) { dp[i][0]=0; } for(int i=0;i<=t;i++) { dp[0][i]=0; } for(int i=1; i<=m; i++) { for(int j=1;j<=t;j++) //j相当于 循环背包质量 { if(w[i]<=j) dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+p[i]); else dp[i][j]=dp[i-1][j]; } } cout<<dp[m][t]<<endl; } return 0;}
一维01背包 相对 二维既节省时间又节省空间
0 0
- 【背包专题】01背包
- 01背包,完全背包
- 01背包 完全背包
- 01背包/完全背包
- 01背包,完全背包
- 背包问题---01背包
- 背包入门--01背包
- 【背包专题】01背包
- 01背包,完全背包
- 01背包,完全背包, 多重背包
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包详解
- 01背包,完全背包,多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包
- 01背包、完全背包、多重背包模板
- 获取json数据的属性名
- 改正 抢占式camera的可能带来死锁问题
- SDUT 2084 DOTA-人王之战(博弈论)
- Java基本输入输出
- iOS网络开发——解析与封装JSON数据
- 01背包
- VS报错:Missing type map configuration or unsupported mapping.
- SDUT 2044 Number Sequence(循环)
- MFC 设置颜色SetDialogBkColor为什么不好使?
- 组合数
- poj 3435 检测数独状态是否合法
- d3,四叉树,quadtree
- python模块 - pickle模块
- 线程间的同步----利用信号量来实现