POJ-2241 uva 437 The Tower of Babylon 记忆化搜索 DAG最长路
来源:互联网 发布:照片马赛克软件 编辑:程序博客网 时间:2024/06/07 12:53
题意链接:http://poj.org/problem?id=2241
题意:有n种不同类型的“块”,每种块有无数多个,“块”是一个立方体,有三个边长度为x,y,z。现在要搭建一个塔,要求是使得塔的高度最高,并且上下两块砖,上底面能够含于下底面。
假设底面边长分别为a,b 和c,d ,(a,b)要含于(c,d)需满足:a<c 且 b<d 或 a<d 且b<c ,剩下的边是高,有n种砖,扩展成3n个结点,如果a含于b ,则添加一条a到b的边,构成的图不会成环
#include<cstdio>#include<cstring>#include<vector>#define Max(a,b) a>b?a:busing namespace std;const int maxn = 200;vector<int> g[maxn];vector<int> h;struct point;vector<point> s;int d[maxn];int ans;struct point{int x,y;}pt;int dp(int i)//从i点出发的最大高度 {if(d[i]>0)return d[i];d[i]=h[i];for(int j=0;j<g[i].size();j++){int v = g[i][j];d[i] = Max(d[i],dp(v)+h[i]);}return d[i];}int main(){int n,x,y,z,kcase=0;while(scanf("%d",&n)==1&&n){ans=-100;for(int i=0;i<3*n;i++)g[i].clear();s.clear();h.clear();memset(d,0,sizeof(d));for(int i=0;i<n;i++){scanf("%d%d%d",&x,&y,&z);pt = {x,y};s.push_back(pt);h.push_back(z);pt = {x,z};s.push_back(pt);h.push_back(y);pt = {y,z};s.push_back(pt);h.push_back(x);}for(int i=0;i<s.size();i++)for(int j=0;j<s.size();j++){if((s[i].x<s[j].x&&s[i].y<s[j].y)||(s[i].y<s[j].x&&s[i].x<s[j].y)){g[i].push_back(j);}}for(int i=0;i<s.size();i++){dp(i);if(ans<d[i])ans=d[i];}printf("Case %d: maximum height = %d\n",++kcase,ans);}}
0 0
- POJ-2241 uva 437 The Tower of Babylon 记忆化搜索 DAG最长路
- uva 437 - The Tower of Babylon(DAG最长路)
- uva 437 The Tower of Babylon(DAG最长路)
- UVA 437 - The Tower of Babylon(DAG最长路)
- uva 437 The Tower of Babylon(dp,记忆化搜索)
- UVA 437The Tower of Babylon (dp + DAG最长序列)
- UVA 437 The Tower of Babylon (DAG上的无源最长路 or LIS)
- uva 437 The Tower of Babylon 矩形嵌套模型,DAG最长路,水
- uva 10285 The Tower of Babylon(dp,记忆化搜索)
- uva 10285 The Tower of Babylon(记忆化搜索)
- UVA 437 The Tower of Babylon DP+记忆化
- The Tower of Babylon (DAG最长路算法模板)
- uva 437 The Tower of Babylon(DAG的DP)
- 动态规划 DAG问题uva 437 The Tower of Babylon
- UVa 437 The Tower of Babylon (DP&DAG)
- UVA 437 - The Tower of Babylon (DAG)
- UVa 437 - The Tower of Babylon(DAG动态规划)
- uva 437 The Tower of Babylon (DAG)
- hdu2112-HDU Today
- 关于某些数学相关结论
- linux下安装mysql5.7
- imageloader缓存机制
- mongo报错:Timed Out While Waiting For A Server That Matches AnyServerSelector{} After 10000 Ms解决
- POJ-2241 uva 437 The Tower of Babylon 记忆化搜索 DAG最长路
- LTE网元功能
- python unittest
- [Linux基础] 02、Linux的安装
- HDU 3949 XOR 线形基,异或消元,求一个数组的第k小异或和
- HDU 6011
- listView多条目
- 本地jar 导入 maven 仓库
- hdu5758 Explorer Bo 树形dp 最小链覆盖