DGA最长路问题

#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;int typeNum;
int** blos;
int** d;
int count=0;
string s="";
void fun(int i,int a,int b,int c)
{if(a>b){int t=a;a=b;b=t;}if(b>c){int t=b;b=c;c=t;}if(a>b){int t=a;a=b;b=t;}blos[i][1]=a;blos[i][2]=b;blos[i][3]=c;
}
bool judge(int i,int j,int k,int l)
{int b1,b2,c1,c2;if(j==1){b1=blos[i][2];b2=blos[i][3];} else if(j==2){b1=blos[i][1];b2=blos[i][3];} else{b1=blos[i][1];b2=blos[i][2];} if(l==1){c1=blos[k][2];c2=blos[k][3];} else if(l==2){c1=blos[k][1];c2=blos[k][3];} else{c1=blos[k][1];c2=blos[k][2]; }     if(c1<b1&&c2<b2)return true;return false;
}
int fun1(int i,int j)
{int& ans=d[i][j];int maxx=0;if(ans==0){for(int k=1;k<=typeNum;k++)     for(int l=1;l<=3;l++)           if(judge(i,j,k,l))              {maxx=max(maxx,fun1(k,l));}ans=blos[i][j]+maxx;}return ans;
}void function(int typeNum)
{blos=new int*[typeNum+1];for(int i=1;i<=typeNum;i++)blos[i]=new int[4];int a,b,c;for(int i=1;i<=typeNum;i++){cin>>a>>b>>c;fun(i,a,b,c);       }d=new int*[typeNum+1];for(int i=1;i<=typeNum;i++){d[i]=new int[4]();}int maxx=0;for(int i=1;i<=typeNum;i++)for(int j=1;j<=3;j++)maxx=max(maxx,fun1(i,j));count++;ostringstream oss; oss<<"Case "<<count<<": maximum height = "<<maxx<<"\n";s+=oss.str();
}
int main()
{cin>>typeNum;while(typeNum!=0){function(typeNum);cin>>typeNum;}cout<<s;}

uva437 巴比伦塔相关推荐

  1. UVA437 巴比伦塔 The Tower of Babylon(矩形嵌套进阶版、DAG上DP、记忆化搜索)

    整理的算法模板合集: ACM模板 本题和基础的矩形覆盖差不多,只不过变成了三维的长方形. 因为每次转移的时候只有顶面的x和y会影响决策的进行,所以我们只需要用一个二元组(a,b)(a, b)(a,b) ...

  2. uva437巴比伦塔

    巴比伦人有n种长方形方块,每种有无限个,第i种方块的三边边长是xi,yi,zi.对于每一个方块,你可以任意选择一面作为底,这样高就随着确定了.举个例子,同一种方块,可能其中一个是竖着放的,一个是侧着放 ...

  3. 第7章 为什么巴比伦塔会失败

    第7章 为什么巴比伦塔会失败 标签:人月神话 现在整个大地都采用一种语言,只包括为数不多的单词.在一次从东方往西方迁徙的过程中,人们发现了苏美尔地区的一处平原,并在那里定居下来.接着他们奔走相告说:& ...

  4. 人月神话(三)画蛇添足、贯彻执行、为什么巴比伦塔会失败?

    第5章 画蛇添足 如果将制定功能规格说明的责任从开发快速.成本低廉的产品的责任中分离出来,那么有什么样的准则和机制来约束结构师的创造性激情呢? Part 1 结构师的交互准则和机制 面对估算过高的难题 ...

  5. [UVa-437] Color Length

    计算贡献:压缩空间优化时间 传送门:$>here<$ 题意 给出两个字符串$a$,$b$,将他们穿插起来(相对位置不变),要求最小化$\sum L(c)$,其中$L(c)$的定义时在穿插完 ...

  6. 【DP】【Uva437】UVA437 The Tower of Babylon

    传送门 Description Input Output Sample Input 1 10 20 30 2 6 8 10 5 5 5 7 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 ...

  7. Uva 437 - The Tower of Babylon(DP)

    题目链接 https://vjudge.net/problem/UVA-437 [题意]        给定n种不同的立方体,每种立方体都有无穷多个,现在要用它们跌放在一起组成一个巴比伦塔,并且处在某 ...

  8. ASCII、Unicode、GBK和UTF-8字符编码的区别联系

    一直对编码这块晕晕乎乎,今天终于看到一篇写的很清楚也很风趣的文章,转过来mark一下. 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状 ...

  9. Unicode 和 UTF-8关系

    unicode 就是 "与存储无关的表示",utf-8 就是 "二进制表示".一句话,utf8是对unicode字符集进行编码的一种编码方式,utf8是给uni ...

  10. unicode,ansi,utf-8,unicode big endian编码的区别

    为什么80%的码农都做不了架构师?>>>    随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那 ...

最新文章

  1. 何恺明团队新作:只用普通ViT,不做分层设计也能搞定目标检测
  2. 张一鸣的微博世界-组织篇
  3. 子组件跟随父组件re-render
  4. HDU - 1520 Anniversary party [树形dp]
  5. openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
  6. error: index-pack died of signal fatal: index-pack failed【Git】
  7. Android4.0添加java层服务
  8. 生成JSON数据--Gson(谷歌)方法
  9. 科大星云诗社动态20210523
  10. 如何处理表单中的中文(中文编码/解码问题)
  11. NOIP2003提高组
  12. 计算机应用学科之间的逻辑性,数学教学中计算机应用
  13. 让你的Mac电脑高效起来,推荐几个yyds的命令行工具
  14. mysql 统计本月的_MySql查询当天、本周、本月、本季度、本年的数据
  15. Python出现‘ascii‘ codec can‘t encode characters...的解决方法
  16. java exec 关闭,Java学习之使用Runtime.exec()启动、关闭Tomcat
  17. 动态规划:01背包问题、多段图问题
  18. 笔记本电脑CPU选型与插槽型号
  19. 红外光电开关的原理与实验
  20. Lora sx1278+stm32(ADC录音)+SPPEX音频压缩 数字对讲机

热门文章

  1. gmx genion命令
  2. sed解析url的域名
  3. 使用VLC把视频转换为一帧一帧的图片
  4. 4200万元新年大单!广西公安厅2个大数据智能化建设项目公开招标
  5. 前段时间 qq大战 360..
  6. [android]system.img文件的打包和解包
  7. 数字化是新物流的基础
  8. DDos-Attack攻击器教程(kali linux)
  9. 政策的组合拳使得九月无法平凡
  10. linux格式化u盘为ntfs格式,Linux下格式化U盘为NTFS格式