摘要: 棋盘放车问题问题描述:在n*n(n≤20)的方格棋盘上放置n个车,求使它们不能互相攻击的方案总数。问题分析:车子的攻击是直线的上下和左右的。那么我们可以认为是一行一行扫描过来。有dp[i][j]。j表示排列状况 但是根据24点游戏的经验。我们完全可以直接根据排列状况来划分状态。(状态本身就是... 阅读全文
posted @ 2015-03-09 17:01 Milkor 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 寻找一个序列的真子集。x&n == x其实也是以上类似的原理。遍历的一个序列的所有可能排列。 也就是说有4个元素。 那么对于1个 对于2个 对于3个 对于4个。这样所有的排列情况列举。比如4个元素。那就是 i = pow(2,5)-1 = 1111;for(x=1;x#include#include... 阅读全文
posted @ 2015-03-09 00:32 Milkor 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 怪我比赛的时候想法太过于杂乱了。注重于区域的属性了。甚至还想用状态压缩或者是hash来描述分块的区域。其实我们的可以宏观的角度去审视这个问题。就是求分区的问题。那么我们完全可以标记边框的值为1。即不可行走。那么我们扫描整片区域。统计一个区域 。就用DFS把这整片区域给覆盖。然后继续扫描下去。离散化在... 阅读全文
posted @ 2015-03-09 00:10 Milkor 阅读(223) 评论(0) 推荐(0) 编辑