「不会」网络流

    「奇怪的游戏」:小学数学+最大流

      如果不相等,算出来要多叠多少层,否则答案具有二分性。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.题目要素不一定是点,也可能作为连结其他两个要素的边

原文地址:https://www.cnblogs.com/yxsplayxs/p/12002914.html