网络流与二分图
补不完。太多了。
CF1783F Double Sort II
先对排列建
交换
把每个环集合抠出来,相当于每个环集合
我们发现操作一些数会使两个排列中的环大小都减少,有些数只会影响一个排列,有些数不会影响。zrdz说过正难则反,考虑最大化最后一类数的个数,即选一些数使得任意两个不出现在同一个环中,或每个环的集合内至多选一个(两个排列都是),使选的数个数尽量多。
有点抽象
考虑网络流建模,原点连向
此时最大流即为最多的选的数的个数。答案即为
CF1773D Dominoes
先黑白染色建二分图,题目保证这时两边点数相等。设两边点数均为
首先标记同一边的两个格子必然满足条件,方案数有
考虑左右各标记一个格子的情况,枚举左边格子并构造没有这个格子的新图,计算右边那些格子是二分图上的必经点(即任意最大匹配都经过的点),这些点就是标记掉以后满足条件的点。
关于最大匹配非必经点这个东西有一个结论:
先做一遍最大匹配,找出一种方案。
- 从左边每一个非匹配点出发,遍历它的右部邻居。如果一个邻居
是匹配点,那么找出 对应匹配的左部点 并遍历它的右部邻居,重复该流程。所有遍历到的左部点都是非必经点。
原因还是比较好理解的。左部非匹配点一定是非必经点;每个遍历到的左部匹配点都存在以其为起点的一条增广路使得终点是一个左部非匹配点。翻转这条路上所有边的状态(匹配
右部点同理。
一个方便一点的做法是跑一遍网络流,从
必经点就是点数减非必经点。
CF1717F Madoka and The First Session
首先假设操作都是
然后我们的到了每个
这时以数为流量,看做网络流模型,操作一条边
有负数好处理,统一加上一个比较大的数 (比如
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下