uva-437 矩阵嵌套dp
来源:互联网 发布:js根据id获取对象的值 编辑:程序博客网 时间:2024/05/20 05:05
旧题新做,以前都是照着背包九讲上的模板来的,现在照着紫书上的有向无环图DAG来,把每一个节点当成一个点,可以嵌套表明两个点连通,d(i)表明在节点i结束的最长路长度。不过解题重点还是把一个长方体看成三个高度不同的长方体。
#include <cstdio>#include <cstring>#include <vector>#include <queue>#include <iostream>using namespace std;#define DEBUGconst int maxn=30+5,maxv=26;int d[maxn*3],n,t;struct rectangle{ int a,b,c;}r[maxn*3];int dp(int i){ // printf("???\n"); int& ans=d[i]; if(ans>0)return ans; ans=r[i].c; for(int j=0;j<t*3;j++){ // printf("r[j]:%d %d %d r[i]:%d %d %d\n",r[j].a,r[j].b,r[j].c,r[i].a,r[i].b,r[i].c); if((r[j].a>r[i].a&&r[j].b>r[i].b)||(r[j].a>r[i].b&&r[j].b>r[i].a)){ans=max(ans,dp(j)+r[i].c);} } return ans;}int main(){#ifdef DEBUG freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout);#endif int a,b,c,kase=0; while(cin>>n&&n!=0){ kase++; memset(d,0,sizeof(d)); t=n; int cnt=0; while(n--){ cin>>a>>b>>c; r[cnt].a=a;r[cnt].b=b;r[cnt++].c=c; r[cnt].a=c;r[cnt].b=b;r[cnt++].c=a; r[cnt].a=a;r[cnt].b=c;r[cnt++].c=b; } int ans=0; for(int i=0;i<3*t;i++){ int temp=dp(i); ans=max(ans,temp); } printf("Case %d: maximum height = %d\n",kase,ans); }#ifdef DEBUG fclose(stdin); fclose(stdout);#endif return 0;}
阅读全文
0 0
- uva-437 矩阵嵌套dp
- 紫书dp 嵌套矩阵
- NYOJ-----16---矩阵嵌套DP
- UVA 348 DP 矩阵乘法 输出结果
- 【UVA】108 - Maximum Sum(DP矩阵)
- uva Krypton Number System dp+矩阵优化
- Uva 103-Stacking Boxes(DP/矩形嵌套)
- 矩阵嵌套
- 矩阵嵌套
- uva 437 dp
- light Oj 1172 二维DP+矩阵 UVa中等题
- light Oj 1172 二维DP+矩阵 UVa中等题
- UVa 348 最优矩阵链乘 (DP)
- UVA 11651 - Krypton Number System(DP+矩阵快速幂)
- 【DP】UVA 10003 Cutting Sticks 类似矩阵链乘
- UVA 1626 Brackets Sequence [最优矩阵链乘变式] [线性结构dp]
- UVA 11651 Krypton Number System(矩阵加速DP)
- 矩阵基础1010 UVA 11651 矩阵快速幂+DP 好题,推荐
- 视频目标检测中关于对检测出的目标进行”安全处理“问题
- Guide for installing VMware tools for Linux (Ubuntu)
- DNS详解--转
- 机器学习 之 Hog特征
- 小白成长记——Android进阶之打造通用的适配器
- uva-437 矩阵嵌套dp
- 【Java集合源码剖析】ArrayList源码剖析
- HDU
- HDU5748-Bellovin【最长上升子序列的变形】
- hdu3555 Bomb(数位DP)
- 层序遍历二叉树(队列的使用)
- WPF ImageButton升级版
- PHP校验日期格式是否正确
- 项目-团队-技术-个人(专业篇)