模板
菜鸡的模板很丑,就不贴了。
网络流24题
这玩意你不搞好就别做网络流了,当然你是神仙当我没说。
一些别的关于最大流的东西
把流量看成需求量/偏移量,然后用源汇调整,用来判断可行性。
最小割
最小割定理:最小割=最大流。
最小割判定定理:先跑一遍最小割。
一条边可能在最小割:流满,两端点在不同\(SCC\)。
一条边一定在最小割:流满,起点和源点在同一个\(SCC\),终点和汇点在同一个\(SCC\)。
一般用来当代价用,我现在碰到的模型最小割不知道比最大流多到哪里去了。
先加上贡献,然后减掉代价。
费用流
就是那点东西,\(zsy\)教了我一个可以跑特殊意义下费用流的带负环的算法,然而我不打算写。。。
上下界网络流
有源汇=\(T->S\)连\(inf\)边,就无源汇了。
先跑可行流。可行流就是先把每条边的下界跑满,然后新建超级源汇补流吸流。
思考这一类问题(包括一些并不是上下界但是需要调整的模型)可以通过水来形象的思考。
最大流就是在这个基础上跑加上\(S->T\),最小流就是减掉\(T->S\),这里的\(S,T\)都是指原来的源汇。
一类特殊的线性规划问题
满足每个变量是非负整数。
先用\(y_i,z_i\)等把所有不等式化成等式,然后用差分的奇技淫巧使得每个变量只出现过两次,一次正一次负。
这个一定要自己好好推一推,大概是源点像常数项为负的连边,常数项为正向汇点连边,负向正连边。
最好一开始默认所有变量是零,然后你通过改变一个变量的值来平衡流量。
一类优化
我们经常会碰到比如说一个点像区间连边的题,但这样边数会很大,又\(TLE\)又\(MLE\)。
所以线段树优化连边,主席树优化连边,线段树合并优化连边(好像都是线段树?)
注意一些线段树的东西在维护的时候想好怎么连边,比如线段树合并的\(merge\)函数。
\(n\)很小区间个数很多可以二维\(RMQ\)优化。
模拟费用流
这是个神仙玩意,我还没有填完坑呢。