网络流
Sakai_Masato
这个作者很懒,什么都没留下…
展开
-
[Codeforces 277E][Round #170 div.1 E]Binary Tree on Plane
题目大意:平面上给出K个点,每个点可以向纵坐标比它小的点连边,边权为欧几里得距离,求一棵最小二叉生成树。 每个点只有一条入边,至多有两条出边,考虑使用最小费用最大流模型。 每个点拆成两个点i,i’,对于原图上的边u,v,u向v’连一条容量为1,费用为dis的边,源点向每个i连容量为2费用为0的边,每个i’向汇点连一条容量为1费用为0的边,最后检查除了最上面那个点的出边之外是否满流即可。#incl原创 2016-03-01 20:12:04 · 836 阅读 · 0 评论 -
[BZOJ2756][SCOI2012]奇怪的游戏
如果我们知道了要变成的数dd,怎么检验这个答案可不可行。 将整张棋盘黑白染色,黑点连向四边的白点,容量为无穷大,源点连向黑点,容量为d−v[i]d-v[i],白点连向汇点,容量为d−v[i]d-v[i],最后检查是否满流。 那么当m∗nm*n为偶数时,可以二分答案。 奇数时,不妨设黑格子比白格子多一个,不管怎么操作,黑格子的和与白格子的和的差是定值,设为difdif,再设最后变成的数为dd,有原创 2016-02-24 21:40:31 · 633 阅读 · 0 评论 -
[POJ1637]SightseeingTour
题目大意:给出一个含有有向边和无向边的图,求是否存在一条欧拉回路。 很明显地,一个有向图有欧拉回路当且仅当入度等于出度。我们可以把无向边强制设定一个方向,然后再调整。 那么我们如何调整。 我们先计算每个点的入度和出度,若和为奇数,则必无解。 若in[u]>out[u]in[u]>out[u]则把这个点和汇点连一条边,容量为(in[u]−out[u])÷2(in[u]-out[u]) \d原创 2016-02-19 20:52:48 · 331 阅读 · 0 评论 -
[BZOJ1927][SDOI2010]星际竞速 最小费用最大流
用流量限制次数,用费用限制距离。 这一题和最小路径覆盖很像,所有边容量为1,把每个点拆成uu,u′u',原图上uu,vv连成uu,v′v',费用为距离,每个u′u'连向汇点,费用0,源点连向每个uu,费用0,源点连向每个u′u',费用为瞬移代价,直接跑最小费用最大流就可以了。 注意最小费用最大流每个点记的是来边而不是来点。#include<ctime>#include<cstdio>#inc原创 2016-02-26 20:42:43 · 430 阅读 · 0 评论 -
[BZOJ3144][HNOI2013]切糕
总结一下这一题我的思考过程,以及与题解的对比。 这题我首先考虑二维平面的切法,发现就是一个最短路,然后套在三维的情况,发现无法保证每个(x,y)(x,y)都经过。所以说这种思路是不对的。一开始就不对,后面怎么可能对。一般靠谱的思路自己都会觉得靠谱,我那样搞十分玄学肯定不是正解。 最小费用好像很玄学,考虑最小割吧,既然一个(x,y)(x,y)只要选一个,我们把同一纵行串成一链,那么求每条链的最小割原创 2016-03-24 21:20:02 · 404 阅读 · 0 评论 -
[BZOJ2324][ZJOI2011]营救皮卡丘
思考如何满足要摧毁点N,必须摧毁前N-1个点。 我们设dis[i][j]为从i到j且不经过大于max(i,j)的点的最短路。 原题转化成了求K条路径覆盖,使得这些路径的权值和最小。 考虑网络流里面的二分图模型最小路径覆盖里面的拆点。 每个点要拆成i和i’,分别表示进入这个点和出去这个点。 源点向0号点连一条容量为K,费用为0;对于每一个点i,向所有的点j(j>i)的j’连接一条容量为1,费原创 2016-02-29 21:49:42 · 1051 阅读 · 0 评论 -
[6-6]考试总结
检查边权给你一幅新有向图和原有向图,判断是否满足一下条件: 所有边为非负整数且原图中任意两条路径的差在新图中的差仍然相等。 也就是说每一条起点终点一样的路径权新图和原图的差为定值。 对于一条有向边,连一条边,权值为边权的改变量,连一条反边,边权为负改变量。搞出生成树,算出每个点到根的距离。然后依次检查每一条非树边,看它所连接的两个点的距离差是否等于这条边的边权,不是就是No。计数器平面上给定一原创 2016-06-10 21:11:26 · 450 阅读 · 0 评论 -
[6-10]总结
我在想一个问题zyh17岁生日(niu)那天,收到了Builder Jose的礼物:一本政治预默本,由很多个字符串组成。那些字符串也非常迷茫,因为他们不知道他们来到这个世界上是为了什么。而睿智的zyh则在想一个问题:我能不能做这么一个事情,在一个字符串中找一个最长的子串,那个子串是一个重复串,形如SS。 分治… 当前递归l,r,中点为mid。从[l,mid]内枚举一个i,要求的是[i,mid]是原创 2016-06-10 21:51:38 · 511 阅读 · 0 评论