摘要:
先连一条从汇点到源点的容量为INF的边,将其转化成无源汇点有上下界的可行流,判断是否可行 若可行的话删掉超级源点和超级汇点,再跑一遍最大流即可 cpp include include include include include include include using namespace st 阅读全文
摘要:
对于有上下界的网络流来说,我们可以分离出必要弧,然后将必要弧切开,两端分别连接源点和汇点,原图有可行解充要于源点或汇点满流. 这样求下来,只能求出可行流 cpp include include include include include include include using namespa 阅读全文
摘要:
```cpp include include include include include include using namespace std; const int MAXN=5005,MAXM=50005; int init(){ int rv=0,fh=1; char c=getchar( 阅读全文
摘要:
朴素dinic+多路增广 cpp include include include include include include using namespace std; const int MAXM=100005,MAXN=10005; int init(){ int rv=0,fh=1; cha 阅读全文
摘要:
EK算法基于增广路的思想,易于理解,但由于低效并不被经常使用 cpp include include include include include include using namespace std; const int MAXN=10005,MAXM=100005; int n,m,s,fl 阅读全文
摘要:
二分图带权最小匹配(朴素) 只要换几个不等号的方向就行,不需要变换权值的正负 cpp include include include include include using namespace std; int n,m,wei[105][105],lx[105],ly[105],match[10 阅读全文
摘要:
二分图带权最大匹配的KM算法(朴素版) cpp include include include include include using namespace std; int init(){ int rv=0,fh=1; char c=getchar(); while(c'9'){ if(c==' 阅读全文
摘要:
二分+二分图多重匹配 辣鸡ACM式读入 对于这种奇葩的读入方法,还是老老实实的用scanf吧 cpp include include include include include define RST(a) memset((a),0,sizeof((a))) using namespace std 阅读全文
摘要:
二分图多重匹配 改进版的匈牙利,加入了一个cnt数组作为找到增广路的标志 本题有一个重要的优化见注释 cpp include include include include include using namespace std; int init(){ int rv=0,fh=1; char c= 阅读全文
摘要:
传递闭包裸题 但是本题的Floyd一定要优化,不然会T cpp include include include include include using namespace std; int init(){ int rv=0,fh=1; char c=getchar(); while(c'9'){ 阅读全文
摘要:
传递闭包经典应用 奶牛的名次能确定当且仅当在它前面的牛数+在他后面的牛数==n 1 在他前面和后面的牛数可以转化成求完传递闭包后的出度和入度 cpp include include include include include using namespace std; int n,m,dis[10 阅读全文
摘要:
DAG图上可相交最小路径覆盖 先求给定DAG的传递闭包,将任意相连的两点加入二分图中,然后就是经典的不相交最小路径覆盖 所谓传递闭包就是将DAG图中任意点间的连通关系处理出来,用Floyd即可 cpp include include include include include using nam 阅读全文
摘要:
二分图行列匹配+输出路径 经典题,当且仅当一行匹配一列的时候,符合题意。 本题的难点在于如何输出路径,我们发现这个移动的过程就是将所有匹配选择排序,在选择排序时输出路径即可 cpp include include include include using namespace std; int in 阅读全文
摘要:
二分图匹配求最小点覆盖 把两个机器作为两个集合,把每个任务当做边建图.那么所求的就是二分图的最小点覆盖. 但是最开始WA了,原因在于,题目要求的是变换的次数,也就是与0连的边需要删去. cpp include include include include include using namespa 阅读全文