POJ 3628 Bookshelf2 / POJ 3624 Charm Bracelet / POJ 1384 初涉01背包与完全背包
来源:互联网 发布:环球科学 知乎 编辑:程序博客网 时间:2024/05/22 11:30
都是最基本的01背包,题意就不讲了。
01背包的状态转移方程,2维:dp[ i ][ j ] = max{dp[ i -1 ][ j ] , dp[ i-1][ j-w] + p};
1维:dp[ i ] = max{dp[i] , dp[i-w] + p};
1维时要从大向小枚举,若从小向大枚举则变成了完全背包。
POJ 3624
#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <queue>#include <cmath>#include <algorithm>#include <stack>#define LL long long#define ULL unsigned long long#define PI (acos(-1.0))#define EPS (1e-10)#pragma comment(linker,"/STACK:102400000,1024000")using namespace std;int f[12900];struct N{ int w,v;}p[4000];int main(){ int n,m,i,j; scanf("%d %d",&n,&m); memset(f,0,sizeof(int)*(m+4)); for(i = 0;i < n; ++i) { scanf("%d %d",&p[i].w,&p[i].v); } for(i = 0;i < n; ++i) { for(j = m; j >= 0;--j) { if(j >= p[i].w) f[j] = max(f[j],f[j-p[i].w] + p[i].v); } } printf("%d\n",f[m]); return 0;}
POJ 3628
#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <queue>#include <cmath>#include <algorithm>#include <stack>#define LL long long#define ULL unsigned long long#define PI (acos(-1.0))#define EPS (1e-10)#pragma comment(linker,"/STACK:102400000,1024000")using namespace std;bool acc[21000001];int num[21];int main(){ memset(acc,false,sizeof(acc)); int n,m,i,j; scanf("%d %d",&n,&m); int Max = 0; for(i = 0;i < n; ++i) { scanf("%d",&num[i]); Max = max(num[i],Max); } int temp = m; m += Max; Max = m; acc[0] = true; for(i = 0;i < n; ++i) { for(j = m;j >= num[i]; --j) { if(acc[j-num[i]]) { acc[j] = true; if(j >= temp) Max = min(j,Max); } } } printf("%d\n",Max-temp); return 0;}
0 0
- POJ 3628 Bookshelf2 / POJ 3624 Charm Bracelet / POJ 1384 初涉01背包与完全背包
- poj 3624 Charm Bracelet 背包
- poj 3624 Charm Bracelet 背包
- Charm Bracelet poj 01 背包
- Charm Bracelet poj 01 背包
- poj Charm Bracelet(01背包)
- poj -Charm Bracelet 01背包
- poj 3624 Charm Bracelet 01背包
- poj 3624 : Charm Bracelet (01背包)
- poj 3624 Charm Bracelet DP 01背包
- poj 3624Charm Bracelet(简单01背包)
- POJ 3624 Charm Bracelet 【DP】【01背包】
- POJ 3624 Charm Bracelet (01背包)
- Poj 3624 Charm Bracelet (01背包)
- poj 3624 Charm Bracelet 01背包
- poj 3624 Charm Bracelet 基础01背包
- poj 3624 Charm Bracelet 01背包问题
- [01背包]POJ 3624Charm Bracelet
- VS2010编译glut-3.7
- 二八原则
- Qt4 to Qt5(持续更新)
- Android APK反编译详解(附图)
- Delphi中的TreeView
- POJ 3628 Bookshelf2 / POJ 3624 Charm Bracelet / POJ 1384 初涉01背包与完全背包
- 解决MySQL无法启动1067错误问题
- android GPS开关
- android NDK开发、编译、调试环境搭建与操作入门
- git的安装使用(笔记)
- How to avoid Unicode pitfalls in Mojolicious
- different DB2 group by
- 推送通知小结
- JOB定时执行存储过程和对JOB的管理