Viaky
Hope,is there.
摘要: 所谓状态压缩型动态规划,就是将不方便转移或数据量极大的状态用01字串来表示,这样就可以方便的转移状态,同时节省了大量的空间。规定三种砖:1*2的矩形,2*2的正方形,2*2的正方形去掉一个1*1的正方形,给出棋盘的长和宽,输出有多少种铺砖方案。首先分析题目,对于棋盘上的每一个格子,都有铺和不铺两种状态,于是想到可以用0和1来表示铺与不铺,阶段划分为每一行,这样每一行的状态就被表示为一个数字,其中位运算的应用也很重要。初始化利用dfs求出从00……0到1……11的各种行的状态之间的关系,即由某一种状态可以用多少种不同的状态推出下一种状态。枚举出上一行的所有状态,DFS时记录当前的下标,即记录当前 阅读全文
posted @ 2011-08-10 21:15 Viaky 阅读(3161) 评论(0) 推荐(0) 编辑
摘要: 话说这题的解题方式和代码还是不太理解,数据太弱以至于枚举k个点分别进行prim最小生成树,最后取最优值也能过。简单说说最小限制生成树的理解。首先明白几个定义:最小生成树:在一个带权图中用最小的权值和将所有的点连接起来。最小限制生成树:在图中指定某个点为定点,要求所生成的最小生成树中这个定点的度不能超过k。解法:首先不考虑k,我们只考虑小于k的某个值p,假设现在生成的树中定点的度为p,如果想要生成p+1的树,我们需要在定点上加一个边连向图中的点,这个边一定不是已经生成的树中的(显然,不然肯定不能达到度+1的目的)。考虑到我们现在是要在生成树中加一条边,由于生成树的定义,这棵树上的所有边已经使每个 阅读全文
posted @ 2011-08-10 21:06 Viaky 阅读(523) 评论(0) 推荐(1) 编辑