图论
文章平均质量分 82
ww140142
wwwwwww
展开
-
bzoj-2960 跨平面
题意:给出一个平面图,每条边从不同方向各有一个跨越代价(或者不能跨越);求一个最小总跨越代价,使从某个平面区域能跨越到所有其他区域;即在此平面图的对偶图上求最小树形图;平面图中点数题解:实际上这是两道裸题。。。然后我作死的学了两种算法;首先是平面图转对偶图:首先将无向边拆成两条单向边,按顺/逆时针挂在端点上;每一次从一条没有经过的单向边出发,深搜原创 2015-11-10 10:18:30 · 1495 阅读 · 0 评论 -
bzoj-3130 费用流
题意:给出一个运输网络,求该运输网络的最大流;并且将运输网络的任意边赋上任意的单位流量权值v[i];使∑v[i]=P,求一个最大流能使总费用最小;n题解:第一问裸上Dinic;第二问首先可以看出Bob一定会将所有的权值都赋给最大流量的边;那么我们经应当使最大流量边最小;然后二分。。。二分的时候流量是实数。。实数网络流并不稳妥嘛;要理性,不要愉悦!原创 2015-10-23 18:18:03 · 1327 阅读 · 2 评论 -
bzoj-3124 直径
题意:给出一个有n个结点,边有长度的树;求这个树的直径,以及有多少边在所有的直径上;题解:树的直径就不用说了吧。。随便搜一下就可以;而对于一个边在所有的直径上,等价于删掉这条边得到的两颗树中不存在一条长度等于直径的链;那么问题就是快速求出删边之后两颗树的直径了;这里我们采用乱搞大法!总之其实就是维护一下几个状态,转移随便搞搞式子就OK了;fs[x][0]原创 2015-10-23 17:52:54 · 1680 阅读 · 0 评论 -
bzoj-2095 Bridges
题意:给出一个n个点m条边的无向图,每个边有一正一反两个权值;现要从点1出发,对每条边经过且仅经过一次;求一种方案使经过的最大权值最小;(bzoj)输出这个权值即可;题解:这坑爹的翻译。。。不是经过所有边而是经过且仅经过一次!(反正我一开始看错题了。。。)最小值最大显然二分;二分之后就转化成了一个判定性问题;判定性问题就是求这个图中是否存在欧拉回原创 2015-09-19 22:11:13 · 2305 阅读 · 0 评论 -
bzoj-1138 Baj 最短回文路
题意:给出一个n个点m条边的有向图;每条边上有一个字符,一个路径表示的字符串就是沿途走边组成字符串;D次求两点之间最短回文路径;n题解:这道题范围不大,问的东西却比较奇怪;一开始打算搜索,利用双向BFS,对字符串Hash来求解;实际上速度还行,但是面对特殊数据菊花图等东西就卡不动了;正解是DP,状态即为f[i][j]为i到j的最短回文路长度;这个状态原创 2015-09-17 22:58:05 · 1792 阅读 · 0 评论 -
bzoj-1135 Lyz
题意:初始时滑冰俱乐部有1到n号的溜冰鞋各k双,x号脚的人可以穿x到x+d的溜冰鞋,;有m次操作,每次包含两个数ri,xi,代表来了xi个ri号脚的人(xi可能为负);对于每次操作,输出溜冰鞋是否足够;n题解:首先这是一个二分图匹配问题,显然鞋和人是没有交集的;然后就有一个Hall定理:二部图G中的两部分顶点组成的集合分别为X, Y;边集中有一组无公共点原创 2015-09-17 07:29:00 · 1353 阅读 · 0 评论 -
bzoj-1123 BLO
题意:给出一个n个点m条边的无向图;求将每个点的所有边删去之后,这个图中的不能到达的点对数;n题解:Poi~要做这题首先样例要看懂= =;显然不能到达的点对数=n*n-能到达的点对数;而对于每个连通块来说,能到达的点数为块内点数的平方;那么就对于一个点,统计删去边后,每个连通块的大小;所以构造DFS树,所有的非树边都是返祖边;记录所有点的深度de原创 2015-09-15 16:27:00 · 1432 阅读 · 0 评论 -
bzoj-3522 Hotel
题意:在一颗n个结点的树上给吉丽的三个妹子各开一个房间,使三个房间两两距离相等;n题解:首先因为树上两点间只有一条路径,所以这种路径下满足条件的三点只可能形成 以某个点为中心,三个点都到那个顶点距离相同的情况;然后我们枚举每个点深搜,找出所有深度相同的点然后累乘C[x][3];然后发现这么做是不对的!因为我们将同一颗子树中深度相同的点也计入了答案中,它们之间的距原创 2015-10-16 13:16:49 · 1037 阅读 · 0 评论 -
bzoj-3545 Peaks
题意:给出一个n个点m条边的无向图,点和边都有权值;q次询问从某个点出发,经过不超过x的权值的边能到达的第k大点权值;1权值题解:题意略鬼畜。。。首先能看出来走的边一定是在最小生成树上,然后这并没有什么卵用;不过至少提供了一点思路,剩下思路就是将询问离线了;离线之后可以做到一次遍历边表,顺便的求出所有的答案值;对于每次的询问,答案就是那个点所在连通块原创 2015-09-28 22:24:55 · 1697 阅读 · 1 评论 -
bzoj-2278 Garbage
题意:给出一个n个点m条边无向图,每个边有一个01状态;现在可以选择一些环,使环上的所有状态取反;给出初始与结束状态,求一个方案;1题解:做完这题深刻的体会到自己的too young too naive;首先有一个性质,如果有解,一定存在一种方案使选择的所有环不重复经过一条边;这个性质也说明了,所有不需要更改的边是可以忽视的;因为如果将其选了偶数次,也可原创 2015-09-23 10:57:06 · 1665 阅读 · 0 评论 -
bzoj-2127 happiness
题意:给出一个nxm的座位表,每个同学学文或学理有一个喜悦度;并且如果两个挨着的同学一起学文或学理,会再有一个喜悦度加成;喜悦度都为非负整数,n,m题解:文理分科,似乎是网络流的经典问题呢;因为让所有人都幸福的世界是不可能存在的,所以我们就采用最小割的思想;先将所有的喜悦度都加起来,然后将割掉一些使其合法,当然要满足割最小;这里的建图还是去膜了黄学长,然后得原创 2015-10-13 16:21:26 · 1373 阅读 · 0 评论 -
bzoj-3144 切糕
题意:给出一个R*P*Q的三维点阵,求一个函数f(x,y) (1使∑v[f(x,y)][x][y]最小,且相邻两个f值之差不超过D;R,P,Q题解:看起来就好神的题,然而就算告诉我是网络流我也不信能跑64000个点;不过事实上= =,数据中最大是30 30 30的。。所以结果大家跑的都很快;这道题的建图就是首先限制在一行只能选择一个,那么从上向下连出一条链,每原创 2015-11-28 18:48:11 · 1439 阅读 · 1 评论 -
bzoj-2051 A Problem For Fun
题意:给出一棵n个结点的树,边上有权值;对于每个点求离它第k小的距离;n题解:正解似乎是树分治维护距离,然后二分答案啥的,时间复杂度O(nlog^3);但是如果想不到树分治怎么办呢?那么就来写一个逗比做法吧!考虑从一个点转移到另外一个点,这个转移过程对于一些点是增加这条边的权值,另一些是减少这条边的权值;而投影到DFS序上,就是对于子树区间的加减修改;从原创 2015-11-26 12:56:54 · 1400 阅读 · 0 评论 -
jdfz-2978 第k短路(强)
题意:给出一个n个点m条边的有向图,求这个图点1到点n的严格第K短路;n边权链接题解:这是一个似乎十分经典的问题,但是普通的A*算法是会被卡的;最坏复杂度会达到O(SPFA(n,m)+KMlog(K+M))的(大概);所以这个算法还需要优化;主要的算法就是俞鼎力大牛在《堆的可持久化》论文里的东西;具体的解法详见论文;只是我使用了可持久化左偏树原创 2015-08-27 10:25:35 · 1668 阅读 · 0 评论 -
poj-2749 Building roads
题意:给出平面上的n个点和两个特殊点s1,s2,定义距离为曼哈顿距离;现想将这些点一些连到s1上,另外的连在s2上,并且连接s1,s2将整个图连成一颗树;有一些规则,使x,y不能连到一个点上,或者x,y必须连到一个点上;求所有可行方案中树的最小直径,如果没有合法方案输出-1;题解:对于这样一个最小化最大距离的问题我们很容易想到二分答案;进行二分之后,问题转化成了原创 2015-11-25 13:40:41 · 935 阅读 · 0 评论 -
bzoj-2502 清理雪道
题意:给出一个n个点的拓扑图,每次从任意点出发到任意点结束,要求最终每条边都至少经过一次;求最少要走多少次;n题解:最近在补一些网络流的姿势,于是就来刷刷上下界的网络流;这道题网络流的模型比较特殊,对于每条边都有一个下界1,并且要求总流量最小;所以这是个最小流,建图如下:建立源S汇T;每条原图的边(x,y)加入下界为1上界无穷的弧(x,y);从S到每原创 2015-11-24 14:40:06 · 2015 阅读 · 0 评论 -
bzoj-3876 支线剧情
题意:给出一个n个点的拓扑图,每条边有一个权值;现想从第一个点出发任意次,每次到任意一个点结束,且经过所有边至少一次;求最小权值;n题解:似乎和清理雪道那道题差不多?然而这道题是加了权的呢;虽然如此我也不会上下界费用流哦。。所以就用了PoPoQQQ大爷题解里的神做法啦;具体来说就是先对于每个点,向汇点T连一条费用为0容量为这个点的出度的边,再向点1连费用为0原创 2015-11-24 16:40:03 · 2065 阅读 · 0 评论 -
bzoj-1565 植物大战僵尸
题意:给出一片n*m的草坪,上面每个点有一个植物;现在由你来从最右面放出一些僵尸来进攻这些植物;僵尸到一个植物面前的时候就可以吃掉这个植物,并且得到这个植物的的得分(可正可负);每个植物可以攻击几个位置,并且僵尸只能从右面出发,也就是说在吃掉右面的植物之前不可能吃掉左面的;僵尸是无限的,求最大得分;n题解:原来这个就是最大权闭合子图啊。。似乎以前没刷过的样子原创 2015-11-24 15:37:34 · 1543 阅读 · 0 评论 -
CF283E Cow Tennis Tournament
题意:给出n个牛,每个牛有一个互不相同的能力值;对于每对牛(x,y)之间都有一场比赛,能力值大的牛将赢过能力值小的牛;现在FJ要更改比赛的结果,每次操作使能力值在[li,ri]中所有牛之间的比赛结果反转 (就是说如果更改两次相当于没改);求最后的比赛结果中有多少个三元环;题解:像这样在竞赛图中找三元环的问题,经常要搞一个补集转化;这个图中一共有C[n][3]个三原创 2015-12-09 20:47:54 · 1433 阅读 · 0 评论 -
bzoj-1006 神奇的国度
题意:给出一个弦图,求它的最小染色数;n题解:膜CDQ。。。似乎很多NP问题在弦图这样的特殊图中都有优雅的解法;并且对于弦图,它的完美消除序列可以搞很多事情。。这里只介绍一下各种结论和实现的细节吧,具体推荐去看2009WC的CDQ的PPT,以及这篇PDFhttp://www.docin.com/p-610139511.html我看完了LexBFS和最大势算法原创 2015-10-29 19:38:41 · 1628 阅读 · 4 评论 -
bzoj-3118 Orz the MST
题意:给出一个无向连通图,并指定其中一颗生成树;每条边上有一个权值vali,如果增大这个权值1则花费Ai,减小1花费Bi;现在要使指定的生成树为一颗最小生成树,求最小花费;n题解:一道线性规划比较神的题目,前面刷的比较偏水就不刷了;首先有一点极为显然的东西(我居然没看出来),树上的边一定减小权值,非树上的边一定增大权值;然后考虑对于一颗生成树要为最小要满足的原创 2015-08-21 18:47:05 · 1207 阅读 · 0 评论 -
bzoj-2085 Hamsters
题意:给出n个长度不大于100000的字符串;现在要找出一个字符串包括m个这些字符串;求这个字符串的最小长度;数据保证字符串不互相包含;n题解:数据保证了字符串没有包含的情况。。那么为了节约考虑,还是要让字符串叠在一起比较合算;设f[i][j]表示i后面加个j字符串要再加多少字符;这个怎么求呢?Hash之后暴力;RKhash可以O(1)拿出前原创 2015-08-31 16:50:55 · 824 阅读 · 0 评论 -
bzoj-4238 电压
题意:给出一个n个结点m条边的无向图,用两种颜色来对结点染色;求图中有多少条边,可以存在一种方案,使这条边两段的颜色相同而其他边两端颜色不同;n题解:这题感觉正解大框很容易想,但是最终写出来还是很难的似乎;最简单的暴力就是枚举边然后给图染色;然后还有n==m的基环树,搜个环讨论一下就又有一些分;正解的话显然要找环,然而如何找环Tarjan早已给出了答案;原创 2015-08-31 07:21:21 · 1589 阅读 · 1 评论 -
bzoj-2330 糖果
题意:给出n个未知数以及m个等式或不等式;未知数均为正整数范围内;求它们的最小和;题解:显然是一道差分拘束的躶题,所以我们就先来说说差分拘束;所谓差分拘束就是给出一些形如 xi-yi 求出某两项的最大差(反之同理);我们观察这个不等式,如果我们令x,y分别表示求最短路中f数组的值;也就是某个源点到x,y的最短路;显然由最短路的定义可知,x必然是要小原创 2015-05-07 23:26:39 · 860 阅读 · 0 评论 -
tyvj1467 通向聚会的道路
题意:给定一个有向图;其中有些边为仅有走过点数为 奇数 时才能通行;其中有些边为仅有走过点数为 偶数 时才能通行;求几个点到第n号点的路径最小值;n题解:正着搜在极限数据下必然是超时的,所以显然可以反向建图;那么这大概就是一个单源最短路的问题;主要难点就是对于奇偶步数的判断以及维护;可以考虑将一个点拆成两个,分别表示奇偶;奇数为x,偶数为x+原创 2015-05-17 21:30:30 · 807 阅读 · 0 评论 -
poj-3041 Asteroids
题意:给出一个01矩阵,求选择多少行或列,能将矩阵中的1全部覆盖;矩阵大小为n*n,有m个1存在;n题解:对于矩阵中的每一个1来说,选择行还是选择列都可以,并且只需要选择一个就可以了;如果我们把每个行和每个列抽象成一个点,就可以得到2n个点 (废话;对于每一个1的坐标(x , y),将x与y连一条边,用这条边来表示这个点;显然行与行,列与列之间不会连边,那原创 2015-05-19 18:53:24 · 669 阅读 · 0 评论 -
bzoj-2150 部落战争
题意:在一个m*n的01矩阵中,1表示可以走而0表示不能走;每个部队可以走r*c的方格,并且只能向下而并不能向上;每个1点能且只能让一个部队经过并占领,部队可以从任意1点开始;求多少个部队可以占领全部1点;n,m题解:考虑每个1点都是可以从自身出发或者从上面的点到达;而又只能去下面的另一个点,因此所有路径是不可能出现环的;那么我们把一个点拆成两个,一个作为起点,原创 2015-05-20 11:27:34 · 1237 阅读 · 0 评论 -
vijos-1754 最优贸易
题意:给出一个有向图,每个点有个权值;求从起点到终点的路径中,到某地以权值购买,再到另一个地方卖出;所获收益的最大值;题解:题目中不限制路径长度和经过结点次数;再加上数据范围的提示,很容易想到缩点;将可以互相到达的点缩成一个,显然只要考虑这个强连通分量中的最小值和最大值就可以了;转化成DAG后可以动态规划求解;或者单纯的维护两个数组,mi[x]表示从1到原创 2015-06-14 09:52:53 · 1222 阅读 · 0 评论 -
USACO Roads and Planes
题意:给出一个n个结点m条边有向图,可能有负权边;但是存在负权边a->b则不会有某个路径可以从b到a;求一个源点s到所有点的最短路(无解输出"NO PATH");n题解:高高兴兴的写了一发spfa,O(km)嘛;然后就TLE了,这题丧心病狂的把spfa卡掉了;这时候理所当然的想到了dij+heap,写到一半想起来不支持负权边;所以这个不是一个简单的单源最原创 2015-06-14 21:13:01 · 876 阅读 · 0 评论 -
bzoj-1305 dance跳舞
题意:有n个男生和女生,男女之间要么互相喜欢要么互相不喜欢;现在两两配对跳舞,两个人不能跳两次舞;和不喜欢的人最多跳k次舞,求这些人可以跳多少轮舞;n题解:考虑网络流建图:显然男生女生是不相交的,那么这就是个在二分图中的匹配问题;每两个人之间都有跳舞的可能,但是有k这个数的限制;所以就是每个男生和喜欢的女生有流量为1的边,和不喜欢的女生总计有流量为k 的原创 2015-06-17 21:35:46 · 692 阅读 · 0 评论 -
bzoj-1570 Blue Mary的旅行
题意:给出一个有向的网络流,每个边每天限流为v;现有k个人要从1到n点,求最小时间;题解:枚举经过的天数,然后根据天数分层;每层的n个点之间根据流量连边,再从昨天向今天的相同点连容量为无穷大的边;然后求从第一天第一点到每天的n点的最大流;直到大于等于n时,天数减一为答案;(恩其实这就是网络流24题)代码:#include#i原创 2015-06-18 21:39:34 · 663 阅读 · 0 评论 -
网络流24题:运输问题
题意:有m个仓库,n个零售商店,两两之间有运送货物的单位费用;对于给定的 m个仓库和 n个零售商店间运送货物的费用,计算最优运输方案和最差运输方案; 题解:建图:从源点s到每个仓库连容量为货物数的边;从每个商店到汇点t连容量为货物数的边;仓库与商店间两两连容量无限,费用为单位费用的边;分别求出最小费用最大流和最大费用最大流就是答案;不过,对于最大原创 2015-06-22 20:34:21 · 1304 阅读 · 0 评论 -
hdu-3001 Travelling
题意:给一个n点m边的无向图,求经过所有点,并且经过每个点不超过两次的最短路长度;数据:input:5 61 2 12 3 11 3 11 5 11 4 1005 4 10output:13题解:一开始不认真看英文就以为是很简单的状压TSP问题,并且样例也过了。。;然而是有坑的,所有并不简单;依然是考虑状态f[i]原创 2015-04-13 14:21:15 · 1068 阅读 · 0 评论 -
bzoj-2243 染色
题意:给出一个无根树和树上每个结点的初始颜色;然后进行m次操作;C:将x到y的路径所有点染成某个颜色;Q:查询x到y的路径上经过多少个颜色块;n,m题解:挺裸的树链剖分,修改的时候要用延迟标记维护;但是注意颜色可能为0,所以我单独开了一个bool的数组维护是否有标记;在合并两个区间的时候要判断两个端点的颜色是否相同;如果相同要将端点合并,也就是答案-原创 2015-07-12 13:54:43 · 929 阅读 · 0 评论 -
bzoj-4003 城池攻占
题意:给出一个n个结点的有根树,和m个骑士;树上的结点——城池有一个防御值,骑士有一个战斗力;当骑士的战斗力大于等于城池时,城池被攻破,骑士的战斗力变化,并向树上的父节点前进;否则骑士死亡;求最后每个城池干掉的人数和每个人干掉的城数;骑士之间没有先后关系,就是说其实每个骑士是在自己的副本里战斗(笑);n,m题解:首先根据战斗力变化的规则,从某个结点出原创 2015-07-23 19:26:49 · 1582 阅读 · 0 评论 -
bzoj-4196 NOI-2015 软件包管理器
题意:扔个现在可以交题的链接:http://www.luogu.org/problem/show?pid=2146就是给出一个n个点的有根树,和m次操作;初始时树上所有结点权值均为0;1操作将根到x结点的所有结点权值置为1,并输出这次修改了多少个元素;2操作将x结点的子树中所有结点权值置为0,并输出这次修改了多少个元素;n,m题解:1操作显然是树链剖分的形式原创 2015-07-19 20:00:14 · 2788 阅读 · 2 评论 -
hdu-5314 Happy King
题意:给出一颗n个结点的树,点上有权值;求点对(x,y)满足x!=y且x到y的路径上最大值与最小值的差n题解:来填一填当年挖下的坑;这个数据范围真是恶意。。直接说五组数据不好吗!考虑这题怎么做,在这场考试那天的前一天,我学习了树分治算法;然后他就出了,然后我就写了,然后我就写不出来了;当年的我实在naive;我翻出了当时交上去的代码,改了好久好久。。原创 2015-08-28 17:13:43 · 1225 阅读 · 0 评论 -
poj-1741 Tree
题意:给出一个边上带权的无根树;求距离不大于m的结点对数;多组数据,n题解:1/8个男人留念吧。。学了树的分治之后来切这道题,听别人讲完写写就A了;但是发现自己模板写的好烂,改了一大通;这题就是考虑点分治,每次在当前子树中找经过重心的点对数;那么就是将以重心为根的距离dis数组排序,然后双指针乱扫线性找出结点对数;但是这里可能会出现在同一子树中的情况原创 2015-07-22 09:22:41 · 1101 阅读 · 0 评论 -
poj-3764 The xor-longest Path
题意:给出一个有权树,求树上两点路径的最大异或和;n题解:考虑异或的性质,如果任选一点为根,处理出所有点的异或深度;那么将两点的深度异或起来,LCA到根的路径就异或了两次相当于没有;所以异或距离就是两点异或深度的异或和,问题就转化成了从n个数中选两个数使异或和最大;这个经典问题就可以把数字按位存进01trie树,从高位到低位贪心求解;复杂度O(31n);原创 2015-07-25 08:03:51 · 1069 阅读 · 0 评论 -
bzoj-1001 狼抓兔子
题意:给出一个n*m的下面这样的图,求此图的最小割;n,m题解:这题说好的简单题结果怎么如此丧病;最简单的想法就是求最小割就是求最小割嘛;然后一发Dinic搞定;然而似乎现在不能这么A了= =所以这个图有一些特殊的性质,这是一个平面图;而对于一个平面图的割来说,一定是一条曲线割开了一些线段;那么如果将这些平面视为点,边视为连接两个平面的边;原创 2015-08-12 15:38:04 · 1028 阅读 · 0 评论