随笔分类 - 网络流
摘要:"传送门" 这题有个坑点(好吧是我第一次做这类题没有感觉)。就是一本书只能用一次,也就是这个点带有点容量,所以需要进行拆点。 cpp include include include include define MAXN 20005 define INF 2147483647 struct edge
阅读全文
摘要:"传送门" 某个方格如果选了,那么其周边的四个方格都不能选,有点二分图染色的味道。 考虑建立一个二分图。源点向$x+y$是奇数的连边,是偶数的向汇点连边。 然后根据最大和 = 全局和 舍弃和 = 全局和 最大流,求解 可以理解为在这个二分图中存在一个简单割,有一些点就被舍弃掉了,剩下的点就是我们要需
阅读全文
摘要:"传送门" 一道最大权闭合子图的题目。直接建图跑dinic就行了,答案为正权点 最大流。 那剩下的问题就是如果知道哪些点被选进最大权闭合子图。 我们知道一个简单割对应了一个闭合子图,当这个简单割是最小割,即最大流,其与$s$相关的点即为闭合子图。
阅读全文
摘要:最大权闭合子图 对于最大权闭合子图的理论学习并且补充一部分网络流的笔记 有向图中若干个点组成的一个集合$V$,集合$V$的所有出边所连的点也都属于$V$,这些点构成的图即为闭合子图 点有点权,最大权闭合子图即为权值和最大的闭合子图 Solution 建图 建立超级源点$s,t$ $s$向所有 点权为
阅读全文
摘要:"传送门" 这应该是比裸的一个网络流/二分图匹配了。 直接跑一遍Dinic求出最大流。再依次遍历所有二分图上的边,如果剩余流量是0,则说明两者相互匹配,作为一组输出。 cpp include include include include define MAXN 205 define MAXM 20
阅读全文
摘要:建立一个超级源点和超级汇点,点与点之间的容量均为1,因为一个点只能匹配一个点,源点向所有左边的点连边,汇点向右边的点连边。最后网络的最大流即为最大匹配。 cpp include include include define MAXN 2005 struct queue { int q[MAXN],h
阅读全文
摘要:网络最大流 DInic cpp include include include define MAXN 10005 define MAXM 100005 define INF 2147483647 struct queue { int q[MAXN]; int head,tail; queue()
阅读全文

浙公网安备 33010602011771号