题意:

N(不超过30)种木块,每种木块有长、宽、高x,y,z。

木块A可以搭在木块B上当且仅当A的底面长和宽都分别小于B的顶面的长与宽,即不能有超出B的部分。

问垒起来的“木块塔”的最大高度。

思路:

每种木块有6种形态,所以总共有6*N种木块,列张二维关系表,然后记忆搜。

代码:

struct node{
int x,y,z;
}
b[355]; int dp[355];
int c;
bool mp[355][355]; int dfs(int x){
if(dp[x]!=-1) return dp[x];
bool yes = false;
rep(i,1,c) if(mp[x][i]){
dp[x] = max( dp[x],dfs(i)+b[x].z );
yes = true;
}
if(yes==false){
dp[x]=b[x].z;
}
return dp[x];
} int main(){ int n;
int T=0;
while(scanf("%d",&n)!=EOF && n>0){
rep(i,1,n){
scanf("%d%d%d",&b[i].x,&b[i].y,&b[i].z);
}
c = n;
rep(i,1,n){
b[++c].x=b[i].y; b[c].y=b[i].x; b[c].z=b[i].z;
b[++c].x=b[i].x; b[c].y=b[i].z; b[c].z=b[i].y;
b[++c].x=b[i].z; b[c].y=b[i].y; b[c].z=b[i].x;
b[++c].x=b[i].z; b[c].y=b[i].x; b[c].z=b[i].y;
b[++c].x=b[i].y; b[c].y=b[i].z; b[c].z=b[i].x;
} mem(mp,false); //mp[i][j]==true:第i种可以放到第j种上 rep(i,1,c){
rep(j,1,c){
if(b[i].x<b[j].x && b[i].y<b[j].y){
mp[i][j]=true;
}
if(b[i].x>b[j].x && b[i].y>b[j].y){
mp[j][i]=true;
}
}
} mem(dp,-1);
int ans = -1; rep(i,1,c){
if(dp[i]==-1){
ans = max( ans,dfs(i) );
}else{
ans = max( ans,dp[i] );
}
} printf("Case %d: maximum height = %d\n",++T,ans);
} return 0;
}

最新文章

  1. 4.3.5 使用Http:// (Https://)协议连接到ActiveMQ 2015年9月28日
  2. 反射,System.Type类
  3. android volley http请求框架
  4. Autocomplete:属性介绍、firefox中文支持问题
  5. org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map
  6. 应用OpenCV进行OCR字符识别
  7. ios7 UITableView底线右移
  8. IOS开发系列 --- 核心动画
  9. MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!
  10. JVM的参数详解(转)
  11. php编译错误:Cannot find OpenSSL&#39;s &lt;evp.h&gt;
  12. javascript(3)
  13. 从源码(编译)安装golang 二
  14. [题解]玩具谜题(toy)
  15. docker学习------记录centos7.5下docker安装更换国内源的处理过程
  16. python中的os.listdir()函数
  17. jquery终止函数
  18. IOS Https适配摸索
  19. ob系列函数中常用函数
  20. C# .NET 获取网络适配器信息和路径信息

热门文章

  1. 机器学习——集成学习(Bagging、Boosting、Stacking)
  2. 【C++基础教程】第三课
  3. 解析Markdown文件生成React组件文档
  4. Linux系列(41) - 监听命令Vmstart,Top(还需完善)
  5. 大白话透彻讲解 Promise 的使用,读完你就懂了
  6. windows10 升级并安装配置 jmeter5.3
  7. hadoop 学习笔记二
  8. phpstoem破解
  9. vue-cli3 取消eslint 校验代码
  10. nginx 配置文件(支持thnkphp3.2~5)