摘要: 增强版就是原版中两鬼不算对子的版本。 先爆搜出完所有对子,剩下的牌DP处理。 考虑每个数码的拆牌情况,最多可能被拆成5种情况:1+1+1+1,1+1+2,1+3,2+2,4。故DP状态数最多为5^13≈12e8,事实上远远不满。 而爆搜部分看上去就跑的挺快,具体复杂度玄学。 几个降低代码复杂度的方法 阅读全文
posted @ 2018-10-23 19:13 HocRiser 阅读(248) 评论(0) 推荐(1) 编辑
摘要: 考虑从起点到终点的过程,一定是先将空格子移到指定格子旁边,和指定格子交换,再移到下一个指定格子要到的地方,再交换,如此反复。 于是问题分为两个部分: 1.给定两个曼哈顿距离为2的格子求最短路,BFS即可。 2.根据1的结果决定从起点到终点的路径,使用SPFA求解。 其中,第一个问题空格子显然不能经过 阅读全文
posted @ 2018-10-23 16:40 HocRiser 阅读(203) 评论(0) 推荐(0) 编辑
摘要: WQS二分,一种优化一类特殊DP的方法。 很多最优化问题都是形如“一堆物品,取与不取之间有限制。现在规定只取k个,最大/小化总收益”。 这类问题最自然的想法是:设f[i][j]表示前i个取j个的最大收益,转移即可。复杂度O(n^2)。 那么,如果在某些情况下,可以通过将问题稍作转化,变成一个不强制选 阅读全文
posted @ 2018-10-23 00:45 HocRiser 阅读(1742) 评论(0) 推荐(1) 编辑