博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 437,巴比伦塔
阅读量:6556 次
发布时间:2019-06-24

本文共 579 字,大约阅读时间需要 1 分钟。

题目链接:

题意:巴比伦塔:

给出n种立方体,一个立方体能放到另一个立方体上,必须满足,底面一定要小于下面的立方体。求巴比伦塔最多堆多高?

 

分析:

DAG很容易想到,主要是状态的描叙。

一个立方体,他有3种情况,状态的描叙就用dp[id][3],此时dp[][i] I 来记录哪个是高。

 

#include 
using namespace std;int blocks[35][3];int d[35][3];int n;void get_dimensions(int *v,int b,int dim) { int idx = 0; for(int i=0;i<3;i++) { if(i!=dim) v[idx++] = blocks[b][i]; }}int dp(int i,int j){ int& ans = d[i][j]; if(ans>0) return ans; ans = 0; int v[2],v2[2]; get_dimensions(v,i,j); for(int a=0;a
View Code

 

转载于:https://www.cnblogs.com/TreeDream/p/5978184.html

你可能感兴趣的文章
《Spring 5 官方文档》26. JMS(一)
查看>>
《Python Cookbook(第2版)中文版》——1.11 检查一个字符串是文本还是二进制
查看>>
Tkinter之Label
查看>>
Java操作redis
查看>>
PostgreSQL merge json的正确姿势
查看>>
java反射
查看>>
【IOS-COCOS2D游戏开发之二】COCOS2D 游戏开发资源贴(教程以及源码)
查看>>
nodejs安装记录
查看>>
Android2.2 API 中文文档系列(9) —— ZoomButton
查看>>
pcDuino 刷系统-卡刷
查看>>
MySQL结构自动同步工具-schemasync
查看>>
关于在线代码运行网站的一个想法
查看>>
我的友情链接
查看>>
使用subeclipse来管理分支/标记
查看>>
我的友情链接
查看>>
django forms模块使用
查看>>
FreeBSD IPFW 防火墙的安装和设置
查看>>
Linux分区和文件系统 ⑥
查看>>
ClipDrawable--水漫起来的效果
查看>>
python中的import
查看>>