随笔分类 -  二分图

摘要:先给每个非零格子-1以满足俯视图不变。于是就相当于要求每行每列最大值不变。能减少剩余箱子的唯一方法是在要求相同的行列的交叉处放箱子以同时满足两个需求。给这些行列连边跑二分图匹配即可。注意必须格子初始时有箱子才能放在这。 阅读全文
posted @ 2018-12-02 12:44 Gloid 阅读(223) 评论(0) 推荐(0)
摘要:相当于将线段划分成两个集合使集合内线段不相交,并且可以发现线段相交等价于逆序对。也即要将原序列划分成两个单增序列。由dilworth定理,如果存在长度>=3的单减子序列,无解,可以先判掉。 这个时候有两种显然的暴力。 将点集划分成两部分使内部无边显然就是二分图,于是第一种暴力是在逆序对之间连边,答案 阅读全文
posted @ 2018-11-27 20:10 Gloid 阅读(374) 评论(0) 推荐(0)
摘要:将未建立贸易关系看成连一条边,那么这显然是个二分图。最大城市群即最大独立集,也即n-最大匹配。现在要求的就是删哪些边会使最大匹配减少,也即求哪些边一定在最大匹配中。 首先范围有点大,当然是跑个dinic,转化成最大流。会使最大流减少的边相当于可能在最小割中的边,因为删掉它就相当于无代价的割掉了一条边 阅读全文
posted @ 2018-11-07 00:02 Gloid 阅读(199) 评论(0) 推荐(0)
摘要:首先将棋盘黑白染色,不妨令空格处为黑色。那么移动奇数次后空格一定处于白色格子,偶数次后空格一定处于黑色格子。所以若有某个格子的棋子颜色与棋盘颜色不同,这个棋子就是没有用的。并且空格与某棋子交换后,棋子所在的格子改变使得该棋子与棋盘颜色不同,那么该棋子也会变为无用棋子。那么问题变为空格在棋盘上黑白格子 阅读全文
posted @ 2018-11-06 17:42 Gloid 阅读(178) 评论(0) 推荐(0)
摘要:即删除一条边使图中不存在奇环。如果本身就是个二分图当然任意一条边都可以,先check一下。否则肯定要删除在所有奇环的交上的边。 考虑怎么找这些边。跑一遍dfs造出dfs树,找出返祖边构成的奇环。可以通过树上差分标记奇环上的边。 但是这显然只包含了一部分奇环。注意到如果某条在奇环上的边同时也在一个偶环 阅读全文
posted @ 2018-10-29 20:34 Gloid 阅读(269) 评论(0) 推荐(0)
摘要:可以看做一些物品中某些互相排斥求最大价值。如果这是个二分图的话,就很容易用最小割了。 观察其给出的条件间是否有什么联系。如果两个数都是偶数,显然满足条件二;而若都是奇数,则满足条件一,因为式子列出来发现一定不能写成完全平方数。那么这就是个二分图了。 阅读全文
posted @ 2018-09-19 00:32 Gloid 阅读(145) 评论(0) 推荐(0)
摘要:容易想到网络流。将每个人拆成0和1两个点。若某人值为0的话则让源连向0,否则让1连向汇,流量为1。相互认识的人之间01各自连边。跑最小割即可。 阅读全文
posted @ 2018-09-11 01:14 Gloid 阅读(204) 评论(0) 推荐(0)
摘要:先考虑B国。容易发现a xor b mod 2=0即二进制末位相同,那么可以据此将所有人分成两部分,每一部分各自是一个完全图。然后再将a or b有奇数个1的边连上,现在需要求的就是这样一个图里的最大团。我们知道最大团=反图最大独立集,这个图的反图显然是一个二分图,那么跑二分图匹配就可以求出这个了。 阅读全文
posted @ 2018-09-08 17:47 Gloid 阅读(141) 评论(0) 推荐(0)
摘要:之前学了一下线段树分治,这还是第一次写。思想其实挺好理解,即离线后把一个操作影响到的时间段拆成线段树上的区间,并标记永久化。之后一块处理,对于某个节点表示的时间段,影响到他的就是该节点一直到线段树根的所有操作。(语死早)这样可以把操作的插入和删除改为只有插入。 具体到这题,由于并查集没法删除边,我们 阅读全文
posted @ 2018-07-28 12:11 Gloid 阅读(212) 评论(0) 推荐(0)