摘要:
【题意】 【分析】 经典的最大权闭合图问题,我们将S与所有权值为正的点连一条容量为其权值的边,将所有权值为负的点与T连一条容量为其权值的绝对值的边,原来的边将其容量定为正无穷 然后跑一遍最大流即可 【代码】 #include<bits/stdc++.h> using namespace std; c 阅读全文
摘要:
【题意】 【分析】 这是一道很好的的拆点建图的费用流,首先这个餐巾因为要分干净和脏的,所以容易想到拆点的做法 然后呢,这个建图就很神了 我们把每一天拆成两个点,晚上和上午 1.S->晚上 和 上午->T ,建立(ri,0)表示晚上接受ri脏餐巾,白天花费ri干净餐巾,费用均为0 2.i天晚上->i+ 阅读全文
摘要:
【题意】 最小费用最大流 【分析】 用spfa代替bfs,然后用EK算法增广即可 【代码】 #include<bits/stdc++.h> using namespace std; int n,m,s,t; const int maxn=5e3+5; const int inf=pow(2,31)- 阅读全文
摘要:
【题意】 【分析】 在最小割树求出任意两点间的最小割之后 题目就被转换为了无向完全图,每个点只走一次,求路径权值和最大为多少 我们枚举n个起点,然后贪心的走,每次走边权最大的即可 【代码】 #include<bits/stdc++.h> using namespace std; #define mp 阅读全文
摘要:
【题意】 求图上任意两点间不同的最小割值有多少个 【分析】 仍然是最小割树裸题 用map统计会被卡常,用set就好了 【代码】 #include<bits/stdc++.h> using namespace std; #define mp make_pair #define fi first #de 阅读全文
摘要:
【题意】 求图上任意两点间的最小割 【分析】 其实有全局最小割的算法 但是用最小割树乱搞就可以了,时间复杂度$n^3m+n^2logn$,但是很难卡满 【代码】 #include<bits/stdc++.h> using namespace std; #define mp make_pair #de 阅读全文
摘要:
【题意】 多次询问最小割小于等于x的点对数 【分析】 最小割树建好后暴力统计即可 【代码】 #include<bits/stdc++.h> using namespace std; #define mp make_pair #define fi first #define se second #de 阅读全文
摘要:
【题意】 给定一个n个点m条边的无向连通图,多次询问两点之间的最小割 【分析】 最小割树模板题 【代码】 #include<bits/stdc++.h> using namespace std; #define mp make_pair #define fi first #define se sec 阅读全文