状态压缩
HumveeA6
这个作者很懒,什么都没留下…
展开
-
cccc2017初赛 15 球队食物链
刚开始看的时候也不大会的…以为是什么高深的玩意儿…后来Google一下发现dfs…因为n<=20,所以可以用状压dfs dfs(sit,num,cnt,first); sit表示当前的状况,即哪些球队已经在本次dfs中被使用了,这一维用一个数就够了(状压); num表示当前dfs到的球队编号,cnt表示本次dfs已经使用了的球队数量,first则记录本次dfs的第一个球队,因为要保证...原创 2018-03-23 19:45:10 · 266 阅读 · 0 评论 -
CF 472B Mystical Mosaic
刚开始的时候考虑过各种暴力,不过似乎都太复杂了以至于写着写着就出错了或者写不下去了。这题其实有非常简便的做法。对于矩阵中的每一列,如果在该列的某一行处是”#”,那么在选中该列的同时该行也是一定要同时选中的。那么,对于任意的两列i,j,如果他们需要选中的行一样,OK,没问题,这两列可以在同一次选择中被选中。但是,如果i,j需要选择的行不一样,那么他们肯定就不能在同一次中选择了,否则的话这两列肯定会多...原创 2018-03-28 15:49:33 · 340 阅读 · 0 评论 -
洛谷P2761
题目标签写着网络流,但是好像跟网络流啥关系也没有哇qwq…. 关键要看出补丁可抽象为边,错误的各种情况是点,而且错误种类很少,所以可以用二进制状态压缩… 然后关键点就是位运算了....这个一定要想清楚...状态用stand表示,软件必须包含b1,那么就是 stand&b1必须为b1,不能包含b2,那么就是b2&~stand必须等于b2,然后修复问题就是stand&a...原创 2018-04-06 10:40:54 · 189 阅读 · 0 评论