uva 437 The Tower of Babylon(dp,记忆化搜索)
来源:互联网 发布:部落冲突兵种数据 编辑:程序博客网 时间:2024/05/13 14:19
垒箱子,保证上面的箱子长宽严格小于下面的箱子,求最大高度
dp[k][t]以第k个箱子为底的最大高度,记忆化搜索
#include<stdio.h>#include<string.h>#define MAXN 35int dp[MAXN][3];int block[MAXN][3];int vis[MAXN],n;bool judge(int i,int a,int j,int b){int ie0=block[i][a],ie1=block[i][(a+1)%3],je0=block[j][b],je1=block[j][(b+1)%3];if(je0<ie0&&je1<ie1||je0<ie1&&je1<ie0) return true;else return false;}int max(int a,int b) {return a>b?a:b;}int dfs(int k,int t){if(dp[k][t]) return dp[k][t];int ans=0;for(int i=0;i<n;i++){if(vis[i]) continue;for(int j=0;j<3;j++){if(judge(k,t,i,j)){ans=max(ans,dfs(i,j)+block[i][(j+2)%3]);}}}dp[k][t]=ans;return ans;}int main(){int cas=1;while(scanf("%d",&n)!=EOF&&n){for(int i=0;i<n;i++)for(int j=0;j<3;j++)scanf("%d",&block[i][j]);memset(dp,0,sizeof(dp));for(int i=0;i<n;i++)for(int j=0;j<3;j++){memset(vis,0,sizeof(vis));dfs(i,j);}int ans=0; for(int i=0;i<n;i++)for(int j=0;j<3;j++){dp[i][j]+=block[i][(j+2)%3];if(dp[i][j]>ans) ans=dp[i][j];}printf("Case %d: maximum height = %d\n",cas++,ans);}return 0;}
0 0
- uva 437 The Tower of Babylon(dp,记忆化搜索)
- uva 10285 The Tower of Babylon(dp,记忆化搜索)
- UVA 437 The Tower of Babylon DP+记忆化
- uva 10285 The Tower of Babylon(记忆化搜索)
- UVa 437.The Tower of Babylon【记忆化搜索+dp】【4月25】
- POJ-2241 uva 437 The Tower of Babylon 记忆化搜索 DAG最长路
- Uva-437 The Tower of Babylon DP
- UVA 437 The Tower of Babylon | dp
- uva--437The Tower of Babylon+dp
- UVA 437 The Tower of Babylon DP
- DP--UVA - 437 The Tower of Babylon
- UVa--437 The Tower of Babylon(dp)
- UVA 437 The Tower of Babylon 【dp】
- uva437 - The Tower of Babylon(动规,记忆化搜索)
- uva 437 The Tower of Babylon(DAG的DP)
- UVA 437The Tower of Babylon (dp + DAG最长序列)
- uva 437 - The Tower of Babylon(DP)
- UVa 437 The Tower of Babylon (DP&DAG)
- java_类关系图线条画法
- linux UART驱动 二
- LeetCode: Unique Paths II
- UINavigationController修改默认的动画
- Linux history时间用户ip设置
- uva 437 The Tower of Babylon(dp,记忆化搜索)
- C语言里为何会有“2+2=5”的结果
- 黑马程序员 Java面向对象——封装
- PL/SQL 游标使用
- STL之hash_map
- CS与BS互相通讯
- 畅读有你:读《文明之光》有奖征文活动
- 【C语言复习(二十八)】函数本质、顺序点
- Swift 调用 Objective-C代码 1)