摘要: 题目出处:http://poj.org/problem?id=3254 解法: 状态压缩dp 对每一层分开处理,首先从[0,1<<N)枚举状态,如果没有两片草地相邻,而且和草地不冲突就是合法状态。判断是不是有两片相邻可以这样:j&(j<<1) || j&(j>>1),判断草地不合法:假设草地的状态是j,比如sample里面两行的状态分别是111 和10,如果现在枚举状态是i,则如果i|j==j就是合法,没有占用没有草得地。这样可以优化到0ms。 然后从上往下递推,如果是第一行,只要状态是合法这个状态下取法就是1,如果是>1行,对上一行每 阅读全文
posted @ 2011-08-23 10:20 like@neu 阅读(175) 评论(0) 推荐(0) 编辑