手动画了整张图,,算是搞懂了吧,, #include <bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; template<const int _n,const int _m> struct Edge { struct Edge_base { int to,next,w,c; }e[_m]; int cnt,p[_n]; Edge() { clear(); } ,memset(p,,sizeof(p)); } vo…
http://www.lydsy.com/JudgeOnline/problem.php?id=2055 某个国家必须经过vi次, 可以转化为上下界都为vi的边 对这张图做有源汇上下界可行最小费用流 按无源汇上下界可行流建好图,跑超级源点到超级汇点的最小费用最大流即可 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #…
连有上下界的边(ss,i,(0,m),0),(i',t,(0,m),0),表示从任意点开始和结束 连(i,j,(0,m),d[i][j]),表示可以买票飞过去 连(i,i',(v[i],v[i]),0),表示这条边会流固定v[i]个人 连(s,ss,(m,m),0),表示限制m个人 然后跑有上下界有源汇最小费用最大流(--)即可,新图的建立和最大流一样 #include<iostream> #include<cstdio> #include<queue> using n…
题解: 总算A掉了,各种蛋疼... int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); n=read();m=read();s=;t=*n+m+;ss=t+;tt=t+;sss=tt+; insert(s,sss,,m,); for1(i,n)insert(sss,i,,inf,); for1(i,n){);} for1(…
2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MB Description     想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么     一个80人的团伙,也想来一次环游世界.     他们打算兵分多路,游遍每一个国家.     因为他们主要分布在东方,所以他们只朝西方进军.设从东方到西方的每一个国家的编号依次为1...N.假若第i个人的游历路线为P1.P2......Pk(0…
EK费用流居然写错了…… Description     想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么     一个80人的团伙,也想来一次环游世界.     他们打算兵分多路,游遍每一个国家.     因为他们主要分布在东方,所以他们只朝西方进军.设从东方到西方的每一个国家的编号依次为1...N.假若第i个人的游历路线为P1.P2......Pk(0≤k≤N),则P1<P2<......<Pk.     众所周知…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2406 这题,首先把题目那个式子的绝对值拆成两个限制,就成了网络流的上下界: 有上下界可行流原来只需要先流出下界,然后用超级源汇补足即可,原来的汇点向源点连一条下界0上界 inf 的边,就也流量守恒了: 竟然是枚举出错了囧,因为平时写的 S=0,所以枚举就是 S~T,但这回写的 S=n+1,枚举应该变成 1~T 啊! 代码如下: #include<cstdio> #include<c…
http://www.lydsy.com/JudgeOnline/problem.php?id=2406 设矩阵C=A-B 最小化 C 一行或一列和的最大值 整体考虑一行或者一列的和 二分最大值 这样每一行一列的和就有了范围 |Σai-Σbj|<=mid 去掉绝对值 Σai-mid <= Σbi <= Σai+mid 构图: 源点向行连下界为Σai-mid,上界为 Σai+mid 的边 列向汇点连下界为Σai-mid,上界为 Σai+mid 的边 第i行向第j列连下界为L,上界为R的边…
https://darkbzoj.cf/problem/2055 https://blog.csdn.net/Clove_unique/article/details/54864211 ←对有上下界费用流的处理方法 首先建立附加源汇ss,tt 对于原图里有的一条边x->y,[l,r],cost,变成x->y,r-l,cost 每一个点的权di定义为所有流入这个点的边的下界和-所有流出这个点的边的下界和 对于一个点i,若di>0,ss->i,di,0:若di<0,i->t…
传送门 表示完全看不懂最小费用可行流…… 据某大佬说 我们考虑拆点,然后进行如下连边 $s$向$a_i$连边,权值$0$,容量$[0,m]$ $a_i$向$a_i'$连边,权值$0$容量$[v_i,v_i]$ 如果存在边$(i,j)$,则连边$a_i'->a_i$,权值为$w_{i,j}$,容量$[0,m]$ $a_i'$向$t$连边,权值$0$,容量$[0,m]$ $t$向$t'$连边,权值$0$容量$[0,m]$ 然后跑个最小费用可行流 //minamoto #include<iostre…