首页 > 其他 > 详细

DAY 6 上午

时间:2019-08-11 13:59:51      阅读:76      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

技术分享图片

技术分享图片

技术分享图片

技术分享图片

如果不是割点,答案减少2(n-1)

如果删去割点,删去之后整个图分成多个连通块

每一个联通块的大小*其他连通块的大小之和

技术分享图片

先求出缩点之后的树

加尽可能少的边使树变成一个边双

找出树上的所有叶子节点(度为一),然后在这些点之间连边直到所有的点度都为一

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

增广路的匹配边恰好比非匹配边少1

交换两种边,匹配边+1

技术分享图片

技术分享图片

最大流=最小割

dinic

每一次找到一条路,使得答案可以增加,更改实际流量

对于已经跑满流量的边先忽略他,从s出发bfs,标记每一个点的深度(到s的距离)

如果s到t联通,说明至少有一条增广路。

每次枚举一条出边,强制使用i+1层的边,找到一条路径,将流量更改

退流

加反向边

记录可扩充容量

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

首先,肯定有一种方案是每一个边对应一个点

不相交也就是说每个点只有一条入边,一条出边

每一种路径覆盖的方案对应了一种二分图匹配。每选中一个点,就有一个点不需要从自己出发

每选择一条出边,也就是在二分图中选择尽可能多的匹配

要最大化二分图选中的边数,因为这样才能减少答案(一个边两个点)

技术分享图片

技术分享图片

先算出每一个城镇下面能到达的城镇,建二分图,然后跑最小路径覆盖就完了

技术分享图片

技术分享图片

技术分享图片

技术分享图片

>和≥的区别

在跑最短路的时候只能跑≥,一般题目都是求整数解

那么我们只需要把边权+1就行了

 

建图:

x=1 把等号转化成大于等于和小于等于

把严格不等号转移成非严格不等号

每个人的糖果数不小于1

建立一个超级源点,到每一个点连一个长度为1的边。设d[0]=0

最长路算法在求的时候或满足很多限制。如果没有限制是不会凭空增大的

判断正环

为什么不能用最短路?

因为最短路不一定能到达所有的点(边的方向),而此时dis为inf,这显然不是我们想要的

技术分享图片

设s[i]a[i]的前缀和

a[l]+...+a[r]=k----->s[r]-s[l-1]=k

然后差分约束判断有没有解就行了

技术分享图片

技术分享图片

从任意一个点出发dfs

技术分享图片

 

DAY 6 上午

原文:https://www.cnblogs.com/lcezych/p/11334632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!