随笔分类 -  H-动态规划-状压DP

摘要:Link: BZOJ 3140 传送门 Solution: 挺好的一道暴力题 首先发现可以每次贪心选择宽度为1的一面,即$1*x*y,1*x*z,1*y*z$ 那么对于与该面垂直的面,相当于解决了一行/一列 于是我们可以先考虑一个二维问题: 每次选取一行/一列要耗费一个代价,询问要覆盖所有染色点需要 阅读全文
posted @ 2018-07-22 22:30 NewErA 阅读(164) 评论(0) 推荐(0)
摘要:Link: BZOJ 1076 传送门 Solution: 数据范围就是题解 能比较明显看出是一道期望+状压的题目 一开始想正向推公式,结果发现每一阶段的答案并不符合后项无关性…… 其实在题面中就有所提示,当前的最优解并不一定是总的最优解 这种情况下可以考虑反向$dp$来保证最优解 其中$dp[i] 阅读全文
posted @ 2018-07-18 22:09 NewErA 阅读(156) 评论(0) 推荐(0)
摘要:Link: P2831 传送门 Solution: 其实是一道裸爆搜都能过的题目…… 看到$n\le 18$想到状压$dp$ 令$dp[i]$,表示达到当前状态的最小代价 可以发现只要两个点就能确定一条从原点出发的抛物线 因此每次对于一个特定的状态枚举两点确定抛物线转移就好了 $O(n^3)$预处理 阅读全文
posted @ 2018-07-13 10:49 NewErA 阅读(218) 评论(0) 推荐(0)
摘要:Link: P2396 传送门 Solution: 一眼能看出$O(n*2^n)$的状压$dp$ 但此题是个卡常题,$n=23/24$的时候就别想过了 这题算是提供了一种对状压$dp$的优化思路吧 原来我们要用$n$的时间来查找当前有哪些位为1,然后从这些位来转移 但实际上可以通过树状数组中$low 阅读全文
posted @ 2018-07-09 08:50 NewErA 阅读(221) 评论(0) 推荐(0)
摘要:Link: BZOJ 1725 传送门 Solution: 事实证明,POJ 1185 炮兵阵地 一道顶十三道! 注意每个状态维护的值要灵活变通! 此题仅要求总次数,因此只要记录末行状态,不用记录当前总个数 Code: 阅读全文
posted @ 2018-07-03 08:40 NewErA 阅读(143) 评论(0) 推荐(0)
摘要:Link: BZOJ 1087 传送门 Solution: 思路基本上和 POJ 1185 炮兵阵地 完全相同 都是先对每一行的可能状态进行预处理,只不过一个记录最大值一个记录方案数 不过再一次写的时候还是犯了几个**错误调了一会…… 1、对$k$的枚举要从0开始! $dp$时很多时候为0的状态都有 阅读全文
posted @ 2018-07-01 17:02 NewErA 阅读(173) 评论(0) 推荐(0)
摘要:Link: POJ 1185 传送门 Solution: 看大家都说是一道状压$dp$基础题,结果我还是卡题了 发现决策第$i$行时,要同时考虑$i-1$和$i-2$行,因此状态中要包含两个“行”状态位 但$O(1024^3*100)$的复杂度明显不行啊,于是我就在这卡住了…… 其实可以发现仅考虑“ 阅读全文
posted @ 2018-06-08 21:21 NewErA 阅读(2494) 评论(0) 推荐(3)
摘要:Link: BZOJ 2734 传送门 Solution: 真是奥妙重重的建模啊..... 我们发现$x,2*x,3*x$这些数太分散了,难以处理 于是我们构建这样的表格: x 3x 9x 27x.... 2x 6x 18x 54x... 4x 12x 36x 108x... ... ..... . 阅读全文
posted @ 2018-06-05 19:12 NewErA 阅读(190) 评论(0) 推荐(0)
摘要:Link: BZOJ 4057 传送门 Solution: 一道比较基础的状压DP 看到$n<=20$,状态转移与顺序相关,就可以开心地状压了 1表示破产,0表示未破产,不断扩展破产的集合即可 Code: 阅读全文
posted @ 2018-06-05 15:04 NewErA 阅读(204) 评论(0) 推荐(0)
摘要:Link: BZOJ 1072 传送门 Solution: 一道直接next_permutation纯暴力就能过的题? 难道2007年时大家都不知道next_permutation这个函数吗 还是用复杂度更优的状压DP吧 设$dp[i][j]$为状态为$i$且对$d$余$j$的个数, 注意$dp[( 阅读全文
posted @ 2018-05-31 22:38 NewErA 阅读(222) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1195 Solution: 看到数据范围n<=12,就要往状压DP上想 为了保证后项无关性,首先肯定要先将已被包含的子串去除,这样保证两个串合并时必然是首尾相接 接下来预处理出第i个串接在第 阅读全文
posted @ 2018-05-28 09:48 NewErA 阅读(257) 评论(0) 推荐(0)