「奇怪的游戏」:小学数学+最大流
如果不相等,算出来要多叠多少层,否则答案具有二分性。check用最大流
土兵占领:补集转化+最小割
转化为最多有多少士兵能同时给一行和一列作出贡献,然后最小割可以做
「紧急疏散」:增量+最大流
必须根据时间拆点,而不能每经过一个时间给终点流量+1,
因为不能让后面的人占用前面的流量
狼抓兔子:最小割/对偶图
不管写最小割还是对偶图都是模板
「切糕」:最大权闭合子图
没有D的限制的话,贪心选取即可,也可以跑个最小割
考虑加入D的限制,即保证相邻位置没有高度相差超过D的选取
那么加入inf边u-v强制S-u和v-T必须割掉一个就可以了
FigureEight:dp
好像乱入了
最大获利:最大权闭合子图
费用和获益的关系比较简单,把所有获益先加进来,
然后S-x边权为费用,x-T边权为获益
这样的原因是获益和费用互相矛盾,必须付出一个
如果付出获益,就从一堆获益里减去,否则付出费用。
happiness:最大权闭合子图
没有明显的获益和费用,但是可以把选文当作获益,不选理当作费用
然后变成了最大获利
「employ」:最大权闭合子图
不再是二分图的形式,思维讲话的我就想不出来了
对于任何一个网络流$DAG$,
都可以通过inf边的限制来强制两端的代价付出一个
本题中,先把所有的收益加起来,那么如果都选就不管他
如果都没选,要减去一份,一个选一个没选要减去两份
发现如果一个人没被选,则与所有其他人的贡献都至少减去一份,
这作为x-T的权值,那么雇佣费用为S-x的权值,表示两者至少付出一个
如果一个选一个不选,那么还要多付出一份
在u-v之间连权值为一份大小的边,这样只选一个时就必须割断它了
「不同的最小割」:最小割树
感性理解失败,尝试证明失败,nc哥的推广证明法听不懂
能力不够,先放过吧
晨跑:最小费用最大流
模板题
80人环游世界:有源汇上下界费用流
模板题
「修车」:拆点大法+费用流
本来我们关心的是每个人的排队时间
但是为了方便建图要改成关心每个人站在多少人前面
把一个师傅拆成正在修最后一个车的师傅,正在修倒数第二个车的师傅..
然后暴力建边跑费用流
「数字配对」:结论+费用流
很巨的一点是想到这是个二分图
因为合法的ai的质因子个数必定相差1,所以奇偶二分
「美食杰」:「修车」+优化
动态建边,脑子抽了才会把这个优化忘掉
「千钧一发」:结论+费用流
那么矛盾的两个数之间连边,求最大独立集即可
那么求反面,最小点覆盖(其实就是跑个最小割!)
很巨的一点是想到(猜到)(打表找到)这是个二分图
怎么证,
两个偶数一定满足2
两个奇数一定满足1
所以连边一定发生在奇偶性不同的两个点之间,所以是二分图
线性代数:最大权闭合子图
化个柿子
$ans=sumlimits_{i=1}^n sumlimits_{j=1}^m B_{i,j}*A_i*A_j - sumlimits_{i=1}^n C_i*A_i$
选一个数,有一个代价,
选两个数,有一个收益,
然后变成了最大获利
植物大战僵尸:最大权闭合子图
我居然想把边权串联
把坐标排列,a[i][j]依赖a[i][j+1],还依赖保护它的所有位置
把环扣了然后直接上最大权闭合子图
寿司餐厅:最大权闭合子图
一个区间的贡献依赖于仅次大于它的两个区间
这作为S-x,那么x-T可以放上选他的代价
首先是一个x直接连向T,然后通过一个中间点向T连一个x^2,
只要让所有相同的x都连向这个中间点就可以保证只被割一次
「矩阵」:二分答案+无源汇上下界网络流
死脑筋,总想把矩阵坐标作为点
其实完全可以作为一行和一列的连边!这点常识都没有
二分答案check
支线剧情:上下界最小流
两种打法,一种是先跑一遍,再去掉T-S减去能退的最大的流
另一种是先不建T-S,即尽量去跑不经过T-S的流,
然后加上,那么新流必须经过T-S,它们即为最小流
志愿者招募:无源汇最小费用可行流
这次是将有下界的边串联起来,然后一种志愿者就是一个有费用的回流
接到对应天数两边,就出现了循环流
旅行时的困惑:有源汇最小流
硬生生打成最小费用可行流然后T飞
最小流模板是我在这道题自己yy的
清理雪道:有源汇最小流
和旅行时的困惑一样,甚至有点退化。
「星际竞速」:费用流
每个点只能经过一次,那么每个点必定入一次,出一次
拆成入点和出点,那么入点a向a能到达的b的出点连边
这样跑出来的流一定能拼起来,形成一条完美的路径
至于跳跃,直接从S通过代价边连向出点即可
80人也可以这么做
「海拔」:对偶图
WA了4次的模板题,我垃圾死
老C的方块:最小割
根据虚线所在直线在横轴上划分出的区间黑白染色,一个特殊边关联起来的两组点必然去掉一组
那么最小割
「无限·之环」:费用流(???)
黑白染色,那么最大流必须为总的接口数/2,否则输出-1
然后把一个点拆成上下左右四个接口点,建边模拟旋转
而且不能模拟的边(比如直线)题目也说了不能转..
我不会的一些东西:
1.inf边的灵活应用
2.各种图转化成二分图,需利用一些性质(星际竞速)
或手动转化出等效题意(无限之环)
转成二分图以后就把一长条有流的链拆开放在二分图里,
流量限制转化成每个点向S,T连的边
3.题目要素不一定是点,也可能作为连结其他两个要素的边