hdu 3127 二维完全背包,长方形布料剪裁求最大价值
来源:互联网 发布:r语言lda函数源码 编辑:程序博客网 时间:2024/04/30 08:12
想法很直接有效
#include<iostream>#include<algorithm>#include<cstdio>#include<string.h>using namespace std;int dp[1100][1100];struct node{ int x,y; int val;}Node[24];int max(int a,int b){ return a>b?a:b;}int main(){ int T; int N,X,Y; scanf("%d",&T); while(T--) { memset(Node,0,sizeof(Node)); memset(dp,0,sizeof(dp)); scanf("%d%d%d",&N,&X,&Y); for(int i=0; i<N; i++) { scanf("%d%d%d",&Node[i].x,&Node[i].y,&Node[i].val); } for(int i=1; i<=X; i++) for(int j=1; j<=Y; j++) for(int k=0; k<N; k++) { if(i>=Node[k].x && j>=Node[k].y) dp[i][j]=max(dp[i][j],max((dp[i-Node[k].x][j]+dp[Node[k].x][j-Node[k].y]),(dp[i][j-Node[k].y]+dp[i-Node[k].x][Node[k].y]))+Node[k].val); int ii=j; int jj=i; if(jj>=Node[k].y && ii>=Node[k].x) dp[i][j]=max(dp[i][j],max((dp[i-Node[k].y][j]+dp[Node[k].y][j-Node[k].x]),(dp[i][j-Node[k].x]+dp[i-Node[k].y][Node[k].x]))+Node[k].val); } printf("%d\n",dp[X][Y]); } return 0;}
- hdu 3127 二维完全背包,长方形布料剪裁求最大价值
- hdu 3127 WHUgirls 二维完全背包
- 【HDU 3127】WHUgirls(二维完全背包)
- 01背包(求前一个的最大价值-->求前K个的最大价值) 之 hdu 2639
- hdu 2159 二维背包 完全
- hdu 2159 二维完全背包
- HDU 2159 二维完全背包
- hdu 2159 二维完全背包
- hdu 2159(二维完全背包)
- hdu 2159 二维完全背包
- HDU 2159 二维完全背包
- HDU 2159 FATE【二维背包+完全背包】
- hdu 2159 FATE(二维背包+完全背包)
- 背包系列第四篇----完全背包(求解最大价值)
- hdu 3127 完全背包 二维限制条件 放置顺序相关性
- FATE hdu 2159 二维的完全背包
- hdu 2159 fate(二维完全背包)
- hdu 2159 二维费用完全背包
- js写九九乘法表
- 关于mysql字符集问题
- 《代码大全》 第四章-五张读书笔记 建立子程序的步骤,高质量子程序的特点
- 传话游戏--Beauty of Programming(2013全国挑战赛)
- 行为型模式之观察者模式(Observer)
- hdu 3127 二维完全背包,长方形布料剪裁求最大价值
- 关于ubunut挂载android设备问题
- iPhone中调用WCF RESTFUL Service
- VC++中获取DC的四种方法
- 关于如何创建启动器图标的问题
- js中各种跨网页方法
- poj1276
- [百度分享]频繁分配释放内存导致的性能问题的分析
- C++零散知识点