
插头DP
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
-
poj1739 Tony‘s Tour
http://poj.org/problem?id=1739普通通路问题,左下角走到右下角,那么只要在上面加两层壳,一层全不可走,一层全可走,那么总左下角走到右下角是一条路径且他和从外面这层壳的唯一路径走形成了一条回路,问题就转换成了直接求回路,就等同于模板题了https://blog.youkuaiyun.com/liufengwei1/article/details/108114948#include<cstdio>using namespace std;typedef long lo原创 2020-08-27 12:21:46 · 215 阅读 · 0 评论 -
hdu1693 Eat the Trees
http://acm.hdu.edu.cn/showproblem.php?pid=1693这题是之前只有一个哈密尔顿路径问题的弱化版,那么只需要2进制状态就行了,有线连过来或者无就行,而且可以全部跑完最后记录状态为0的树,不用在最后一个位置记录答案。但是我在最后一个位置记录答案时wa了一发,加了一个判断最后这个位置除了j-1和j位是1其他全是0才过,但按道理我每次设为1都判断了下面和右边是不是0,应该不会出现问题啊。。。不是很懂,写了个对拍还没拍出来,建议拍到明早#include<bi原创 2020-08-25 02:32:04 · 167 阅读 · 0 评论 -
hdu4804 Campus Design
http://acm.hdu.edu.cn/showproblem.php?pid=4804其实这种放骨牌的题好像也可以直接状压,不过挺难受的,还不如直接插头DP轮廓线只需要用1和0来标记是否有拓展到右边或下边的1*2骨牌,然后再把已经放了的1*1压进状态里,及bit+=num*mi[m+1]就行了注意一个细节,当你选择横着放的1*2的骨牌时,由于影响的是下一个位置,需要判断一下是否下一个位置被从上一行往下的骨牌给覆盖了。转移就是如果当前格子被左边或者右边或者本身就不能放的话,直接把j-1和原创 2020-08-24 22:36:04 · 172 阅读 · 0 评论 -
hdu6875 Yajilin 2020杭电多校第9场
http://acm.hdu.edu.cn/showproblem.php?pid=6875调了一个晚上,其实就是在求哈密尔顿路径的板题https://blog.youkuaiyun.com/liufengwei1/article/details/108114948的基础上加上一维状态表示那个插头是黑色方块,只有左插头和上插头都不是黑色,才能新增一个黑色方块。然后有几个地方注意一下,左插头是1,右插头是2时,一定不能加进队列,因为要保证剩下的方格是一个完整的哈密尔顿路径,所以特判当i=n,j=n-1时,如果右边原创 2020-08-22 22:53:29 · 276 阅读 · 0 评论 -
洛谷P5056 【模板】插头dp ural 1519
https://www.luogu.com.cn/problem/P5056学习了模板题https://www.cnblogs.com/y2823774827y/p/10140757.html关键在于知道b1b2是你枚举的那个方块左边和上边的插头,b1是竖着的边的插头,b2是横着的边的插头。然后1表示是一个条线左端点,2表示是1条线右端点,用4进制来存012的状态,再讨论状压的转移,8种情况怎么转移#include<bits/stdc++.h>using namespace原创 2020-08-20 02:51:47 · 258 阅读 · 0 评论