摘要:
题目问用1*2组成如图h*w矩形的方案有多少种。 明显的状态压缩DP,从上向下填充,假设两行的状态为stat1和stat2,则需要满足的条件是stat1|sta2=1<<w-1以及stat1&stat2中连续的1都是偶数个。因为上一行为空的下一行必须放一个竖的,而除去竖着到上一行的都是横着的,每一个横着的占的宽度都是2,所以stat1&stat2中连续的1肯定是偶数个。 对每一层要记录一个状态是否搜过,并记录这个状态有多少种方法,即记忆化搜索。复杂度是O(h*(2^w)*(2^w))。 斌牛的方法更为高效简洁,状态表示的是当前轮廓线的状态,复杂度是O(h*w*(2^ 阅读全文
posted @ 2012-09-04 23:37
Burn_E
阅读(401)
评论(0)
推荐(0)
摘要:
KD树,来源计算几何,在《计算几何-算法与应用》一书中有详细的解释。 这题是比较裸的KD树模型,要在点集中找到离一个点最近的一个点。其实KD树就是一棵多维平衡二叉树,将多维空间分成很多个部分,查找时能够较快的逼近查找点,从而快速的找到距离某点最近或者较近的点。 在网上找到了这份模版,简洁高效。 MARK一下URAL1369,也是一道KD树,目前TLE中。。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 #define MAXN 100005 5 #define INF 阅读全文
posted @ 2012-09-04 13:26
Burn_E
阅读(391)
评论(0)
推荐(0)
浙公网安备 33010602011771号