hdu5410 dp
2015-08-21 00:39
274 查看
写法一 滚动数组+dp
dp[c][i][0] 表示花了i元不取当前这种物品,dp[c][i][1] 表示花了i元取过当前这种物品
写法2 01背包加完全背包
dp[c][i][0] 表示花了i元不取当前这种物品,dp[c][i][1] 表示花了i元取过当前这种物品
#include<stdio.h> #include<string> #include<map> #include<vector> #include<cmath> #include<stdlib.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; const int N=1e4+10; const int MOD=2015; const int inf=1e9; int n,m,k; long long dp[2][2*N][2]; int a ,b ,w ; int main(){ #ifndef ONLINE_JUDGEgers Wi, Ai and Bi. freopen("aaa","r",stdin); #endif int T; scanf("%d",&T); while(T--){ scanf("%d%d",&m,&n); memset(dp,0,sizeof dp); for(int i=1;i<=n;i++){ scanf("%d%d%d",&w[i],&a[i],&b[i]); } long long res=0; int c=1; for(int i=0;i<=m;i++) dp[c^1][i][0]=dp[c^1][i][1]=-inf; dp[c^1][0][0]=0; for(int i=1;i<=n;i++){ int u=c^1; for(int j=0;j<=m;j++){ if(j<w[i]){ dp[c][j][0]=max(dp[u][j][1],dp[u][j][0]); dp[c][j][1]=-inf; }else{ dp[c][j][1]=max(dp[c][j-w[i]][0]+a[i]+b[i],dp[c][j-w[i]][1]+a[i]); dp[c][j][0]=max(dp[u][j][1],dp[u][j][0]); } res=max(res,max(dp[c][j][0],dp[c][j][1])); } c^=1; } printf("%I64d\n",res); } return 0; }
写法2 01背包加完全背包
#include<stdio.h> #include<string> #include<map> #include<vector> #include<cmath> #include<stdlib.h> #include<string.h> #include<algorithm> #include<iostream> using namespace std; const int N=1024; const int MOD=2015; const int inf=1e9; int n,m,k; int dp[2048]; int a ,b ,w ; int main(){ #ifndef ONLINE_JUDGE freopen("aaa","r",stdin); #endif int T; scanf("%d",&T); while(T--){ scanf("%d%d",&m,&n); for(int i=0;i<n;i++) scanf("%d%d%d",&w[i],&a[i],&b[i]); memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { for(int j=m;j>=w[i];j--) dp[j]=max(dp[j],dp[j-w[i]]+a[i]+b[i]); for(int j=w[i];j<=m;j++) dp[j]=max(dp[j],dp[j-w[i]]+a[i]); } printf("%d\n",dp[m]); } return 0; }
相关文章推荐
- 详解。。设计模式5——DAO。。studying
- 详略。。。设计模式4——装饰模式。。。studying
- 粗略。。Java项目设计模式之笔记----studying
- 粗略。。类设计的基本经验3之笔记
- windows 2003 server 远程桌面禁用本地资源,磁盘驱动器,串行口,复制文件
- 文章标题
- 个人助理的权威定义
- 经典语录
- 黑马程序员——反射
- C#中的Action<>和Func<>
- Java设计模式之适配器模式
- Python小结点&递归例子
- 各大牛逼讲师的经典Jquery精品视频教程,大放送啦!!!(包括手机移动端JqueryWeb开发)!!!
- Java设计模式之单例模式
- HDU 4345 Permutation dp
- 读书笔记之计算机系统(4)
- MySQL CMake参数说明手册 【转载】
- Java设计模式之原型模式
- makefile中“=”和“:=”的区别
- Android利用布局实现伪自定义商品数量加减控件