摘要:
每日一水~~~ 1 #include 2 #include 3 #include 4 #define oo 0x3f3f3f3f 5 #define N 55010 6 using namespace std; 7 8 struct Edge { 9 int u, v, f;10 ... 阅读全文
摘要:
算法: 先求出残量网络,计算出从src能够到的点集A,再求出能够到dst的点集B,如果所有点都被访问到了,那么割就是唯一的,即(A,B),否则(A,V-A)和(V-B,B)都是最小割。 (注意因为割的本质是有向边集,而不是点集V的划分,所以(A,V-A)和(V-B,B)有可能本质上还是同一个最小... 阅读全文
摘要:
最小路径覆盖问题是:给定一个DAG,该DAG的一个路径覆盖是一个路径的集合,使得每个点属于且仅属于其中一条路径,问题就是求一个大小最小的路径集合。做法是将每个点A拆成两个点A1,A2,如果A->B,那么连A1->B2求一个最大匹配。一个结论是:最小路径数 = 点数 - 最大匹配证明的大概思路是: ... 阅读全文
摘要:
属于模板题吧。。。 1 #include 2 #include 3 #include 4 #define min(a,b) ((a) edge;16 vector g[N];17 int dep[N], cur[N], qu[N], bg, ed;18 19 void ... 阅读全文