
★图论
文章平均质量分 92
墓华
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
同余最短路(洛谷P2371 墨墨的等式)
定义同余最短路常用于解决这样一类问题:有nnn个正整数a1,a2,a3,⋯ ,ana_1, a_2,a_3 , \cdots, a_na1,a2,a3,⋯,an,设:x1a1+x2a2+x3a3+⋯+xnan=k (x1,x2,x3,⋯ ,xn∈N)x_1a_1+x_2a_2+x_3a_3+\cdots+x_na_n=k\;\;\;\;\;\;\;\...原创 2020-04-07 14:08:59 · 391 阅读 · 0 评论 -
求树上结点的两两距离和——DFS求解
对于一颗N个结点的树,其N-1条边有各自的边权(长度),求树上所有结点两两之间的距离和,即:∑i=1n−1∑j=i+1ndistance(i,j)\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}distance(i,j)i=1∑n−1j=i+1∑ndistance(i,j)分析:要求求 一棵N个结点的树 上 所有的任意两点之间的距离和;那么 任意一条边对距离和的贡...原创 2019-07-18 15:51:43 · 1655 阅读 · 0 评论 -
图论 —— 树的直径 及 其两种求法
定义:树的直径,即 树上最远的两点的距离(即 树上最大距离),若树的边权全为111,则树的直径即是 树上的最长链。通常有两种树的直径的求法,时间复杂度均为O(n)O(n)O(n)①树形DP求树的直径改方法只需遍历一次,即可求得树的直径大小,但无法求得直径的具体路径。选取任意结点为根遍历树,设 d[i]:d[i]:d[i]:表示结点iii为根的子树结点最远距离。则有:uuu为根的...原创 2019-08-21 21:07:26 · 1508 阅读 · 0 评论 -
CodeForces - 1206D Shortest Cycle(位运算,floyd求无向图最小环)
链接:CodeForces - 1206D Shortest Cycle题意:给出n  (≤105)n\;(\le 10^5)n(≤105)个数 a1,a2,…,an  (ai≤1018)a_1,a_2,\dots,a_n\;(a_i\le10^{18})a1,a2,…,an(ai≤1018),表示图中nnn个结点,若ai∧aj≠...原创 2019-08-20 17:02:28 · 371 阅读 · 0 评论 -
图论 —— floyd算法(全源最短路问题 / 无向图找最小环)
floyd算法:对于一个含有nnn个结点的无负环图GGG(通常用邻接矩阵存储),floyd算法可以用于解决全源最短路问题,和查找无向图中最小环,时间复杂度O(n3)O(n^3)O(n3),①全源最短路问题:邻接矩阵g[i][j]g[i][j]g[i][j]:表示边i→ji\rarr ji→j的距离,INF表示i,ji,ji,j之间无边直接相连dist[i][j]dist[i][j]di...原创 2019-08-20 16:19:29 · 1335 阅读 · 0 评论 -
2019多校第九场 HDU6681 Rikka with Cake(欧拉图论定理,线段树)
链接:HDU6681 Rikka with Cake题意:给出一个笛卡尔坐标系中左下角坐标为(0,0)(0,0)(0,0),右上角坐标为(n,m)(n,m)(n,m)的矩形,有K  (≤105)K\;(\le 10^5)K(≤105)条射线,起点在矩形内部,其坐标为(xi,yi)(x_i,y_i)(xi,yi),方向为上/下/左/右(U/D/L/R)U/D/L/...原创 2019-08-20 14:47:09 · 218 阅读 · 0 评论 -
有向图 —— 拓扑排序小结
定义:对一个有向无环图( Directed Acyclic Graph 简称DAG )GGG进行拓扑排序,是将GGG中所有顶点排成一个线性序列,使得图中任意一对顶点uuu和vvv,若边<u,v>∈E(G)<u,v>∈E(G)<u,v>∈E(G),则uuu在线性序列中出现在vvv之前。应用:拓扑排序常用来 确定一个...原创 2019-08-14 10:17:45 · 491 阅读 · 0 评论 -
CodeForces - 532E Andrew and Taxi(二分,拓扑排序)
链接:CodeForces - 532E Andrew and Taxi题意:给出一含nnn个结点mmm条边(2≤n≤100000,1≤m≤100000)(2≤n≤100000, 1≤m≤100000)(2≤n≤100000,1≤m≤100000)的有向图,每条单向边有起点uiu_iui,终点viv_ivi以及反转该条边(即ui,viu_i,v_iui,vi交换)需要的交通管制员ci&...原创 2019-08-14 09:24:51 · 316 阅读 · 0 评论 -
树的重心——DFS求解
定义:树的重心也叫树的质心。对于一棵树n个节点的无根树,找到一个点,使得把树变成以该点为根的有根树时,最大子树的结点数最小。换句话说,删除这个点后最大连通块(一定是树)的结点数最小。性质:树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个距离和,他们的距离和一样。把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。一棵树添加或者删除一个节点,树的重心最多只移...原创 2019-07-15 15:28:19 · 1206 阅读 · 1 评论 -
2019CCPC网络赛 HDU6705 - path(图论,优先队列)
链接:HDU6705 - path题意:给出一个带边权有向图,含有nnn个结点mmm条边,共qqq次询问,每次询问在所有路径中第kkk小的路径边权和是多少?(一条边可以走无限次)(1≤n,m,q,k≤5∗104)(1≤n,m,q,k≤5∗10^4)(1≤n,m,q,k≤5∗104)分析:每次 把边权和尽量小的路径状态 放入优先队列中,每次从队首取出当前最小路径(即第iii小),利...原创 2019-08-25 20:04:59 · 575 阅读 · 0 评论 -
【网络流24题】最长 k 可重区间集(费用流)
链接:【网络流24题】最长 k 可重区间集题意:给定实直线LLL上nnn个开区间组成的集合III,和一个正整数kkk,试设计一个算法,从开区间集合III中选取出开区间集合S⊆IS\subseteq IS⊆I,使得在实直线LLL的任何一点xxx,SSS中包含点xxx的开区间个数不超过kkk。且∑z∈S∣z∣\displaystyle\sum_{z\in S}|z|z∈S∑∣z∣达到最大。这样的...原创 2019-10-06 17:29:02 · 229 阅读 · 0 评论 -
【网络流24题】星际转移(网络判定)
链接:【网络流24题】航空路线问题题意:由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了。于是在月球上建立了新的绿地,以便在需要时移民。令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球。现有nnn个太空站位于地球与月球之间,且有mmm艘公共交通太空船在其间来回穿梭。每个太空站可容纳无限多的人,而每艘太空...原创 2019-10-04 22:19:50 · 308 阅读 · 0 评论 -
【网络流 24 题】最长递增子序列(最多不相交路径)
链接:【网络流 24 题】最长递增子序列题目描述给定正整数序列 ,以下递增子序列均为非严格递增。计算其最长递增子序列的长度sss。计算从给定的序列中最多可取出多少个长度为sss的递增子序列。如果允许在取出的序列中多次使用x1x_1x1和xnx_nxn,则从给定序列中最多可取出多少个长度为sss的递增子序列。输入格式文件第111行有111个正整数 ,表示给定序列的长度。...原创 2019-10-04 20:24:46 · 531 阅读 · 0 评论 -
POJ - 3155 Hard Life(最大密度子图)
链接:POJ - 3155 Hard Life题意:给定一个含有nnn个结点,mmm条边的无向图GGG,找出其一个子图G′(V,E)G'(V,E)G′(V,E),其边的条数∣E∣|E|∣E∣和点的个数∣V∣|V|∣V∣的比值,即∣E∣∣V∣\frac{|E|}{|V|}∣V∣∣E∣最大。(子图G′G'G′中 ∀(u,v)∈E\forall (u,v)\in E∀(u,v)∈E,有u∈V∧v...原创 2019-10-04 19:23:25 · 246 阅读 · 0 评论 -
POJ - 2594 Treasure Exploration(最小可相交路径覆盖)
链接:POJ - 2594 Treasure Exploration题意:给出一个含有n (1≤n≤500)n\,(1\le n\le 500)n(1≤n≤500)个结点、m(0≤m≤5000)m(0\le m\le 5000)m(0≤m≤5000)条边的有向无环图(DAG),机器人可以从任意点出发,问至少需要多少机器人,才能遍历图上所有点?(允许同一点同时存在多个机器人)分析:即求D...原创 2019-10-04 09:19:32 · 273 阅读 · 0 评论 -
LightOJ - 1356 Prime Independence(质因数分解,二分图最大独立集)
链接:LightOJ - 1356 Prime Independence题意:定义:若aaa是bbb的质数倍,即a=k×ba=k\times ba=k×b(其中kkk为质数),则称aaa、bbb相关联;给出N (1≤N≤40000)N\,(1\le N\le 40000)N(1≤N≤40000)个正整数x∈[1,500000]x\in [1,500000]x∈[1,500000],求最大独立...原创 2019-10-03 15:15:45 · 269 阅读 · 0 评论 -
Gym101964 -C Tree(树的直径)
链接:Gym101964题意:给出一棵n (1≤n≤100)n\,(1\le n\le 100)n(1≤n≤100)个结点的树,结点被涂成了黑色或者白色,要求找到最小的整数kkk,使得能够选出mmm个黑点,且黑点两两之间的最大距离≤k\le k≤k。分析:先预处理出所有黑点两两之间的距离;对于一棵树,可以枚举选择了黑点后其 树的直径(即 黑点两两之间的最大距离),枚举选择直径端点i,...原创 2019-09-26 09:48:39 · 295 阅读 · 0 评论 -
Gym101889 - I Imperial roads(最小生成树,树链剖分)
链接:Gym101889题意:给出RRR条带权边,构建一棵N (2≤N≤105)N\,(2\le N\le 10^5)N(2≤N≤105)个结点的最小生成树,共Q (1≤Q≤105)次询问Q\,(1\le Q\le 10^5)次询问Q(1≤Q≤105)次询问,每次询问必选边(U,V)(U,V)(U,V)的最小生成树的边权。分析:先不考虑必选边,建一棵最小生成树,对于询问必选边(U,V)...原创 2019-09-25 17:24:56 · 229 阅读 · 0 评论 -
2019多校第一场 HDU6582 - Path(最短路,最小割)
链接:HDU6582 - Path题意:给出一张含有n个结点、m条边有向图,要求删除边使得 1 -> n 最短路的总长增大(或无法到达),删除的花费即边的长度,问最小花费为多少。分析:很容易想到把最短路全部拎出来建个新图,然后用网络流求最小割。但是比较麻烦的就是跑完最短路以后怎么把 所有的1 -> n 的最短路 都拎出来。看到别人的方法是,分别从点1和点n开始跑两遍最短...原创 2019-07-23 22:49:54 · 311 阅读 · 0 评论 -
POJ - 3281 Dining(匹配问题,网络流)
题目链接:POJ - 3281 DiningCows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will consume no others.Farmer John has cooked fabulous meals for his cows, but h...原创 2019-07-10 09:37:06 · 209 阅读 · 0 评论 -
HDU-4289 Control(最大流最小割+拆点)
题目链接:HDU-4289 ControlYou, the head of Department of Security, recently received a top-secret information that a group of terrorists is planning to transport some WMD 1 from one city (the source) to ...原创 2019-07-09 18:52:42 · 300 阅读 · 0 评论 -
H - Cow Contest(全源最短路,Floyd算法)
链接:Cow ContestN (1 ≤ N ≤ 100) cows, conveniently numbered 1…N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill ra...原创 2019-02-28 19:51:19 · 298 阅读 · 0 评论 -
F - Wormholes(负环判断,BF算法 / SPFA算法)
链接:WormholesWhile exploring his many farms, Farmer John has discovered a number of amazing wormholes. A wormhole is very peculiar because it is a one-way path that delivers you to its destination at...原创 2019-02-27 22:03:06 · 397 阅读 · 0 评论 -
Bellman-Ford算法、SPFA算法模板——含负边权单源最短路问题 及 负环判断问题
Bellman-Ford算法:核心思路: 源点d值设为0,其他d值设为INF。执行N-1次操作(N为结点数),每次遍历所有边来进行松弛操作。N-1次操作结束后,再遍历一次所有边,若还能继续松弛,说明有源点可达的负环。模板:struct edge{ int u; int v; int w;} a[maxm];int N,M; //N个结点,M条边int d[maxn]...原创 2019-02-27 20:08:36 · 355 阅读 · 0 评论 -
最小生成树(MST)—— Kruskal算法
Kruskal算法主要对边进行贪心,经过变换还可以求最大生成树,还可以记录树的具体路径。Kruskal算法基本思想:初始状态时隐去图中所有边,这样图中每个顶点都自成一个连通块。对所有边权从小到大排序。按边权从小到大测试所有边,如果当前测试边所连接的两个结点不在同一个连通块中,则把这条测试边加入最小生成树中( 合并两个连通块 );否则,将这条测试边舍弃。执行步骤2,直至最小生成树中的...原创 2019-02-09 14:16:45 · 721 阅读 · 0 评论 -
最小生成树(MST)—— Prim算法
prim算法基本思想:对 图G( V , E) 设置 集合S来存储已被访问的结点,然后执行N次以下操作(N为结点个数)每次从集合V-S(即未访问结点) 中选择与 集合S(已访问结点的集合) 最近的一个结点u,访问u并将其加入集合S,同时把 这条离集合S最近的边(u - S)d[u] 加入最小生成树中。以结点u作为接口(踏板),优化从u能到达的未访问结点v与集合S的最短距离。伪代码...原创 2019-02-09 11:12:30 · 715 阅读 · 0 评论 -
PAT Advanced 1072 Gas Station(图,最短路)
链接:PAT Advanced 1072A gas station has to be built at such a location that the minimum distance between the station and any of the residential housing is as far away as possible. However it must guar...原创 2019-02-08 14:45:59 · 245 阅读 · 0 评论 -
SPFA以及其优化
SPFA(Shortest Path Faster Algorithm)是Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。SPFA,要从Bellman-ford的优化说起。在n个点m条边的图中,Bellman-ford的复杂度是n*m,依次对每条边进行松弛操作,重复这个操作n-1次后则一定得到最短路,如果还能继续松弛,则有负环。这是因为最长的没有环路的路,也只不过是n个点n...转载 2019-01-31 11:59:00 · 323 阅读 · 0 评论 -
PAT Advanced 1030 Travel Plan(图,最短路径,Dijkstra算法)
链接:PAT Advanced 1030A traveler’s map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a program to help a traveler to deci...原创 2019-01-29 11:42:52 · 200 阅读 · 0 评论 -
I - Arbitrage(判断正环,SPFA算法)
链接:ArbitrageArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar b...原创 2019-03-01 20:35:47 · 440 阅读 · 0 评论 -
C - Heavy Transportation(最短路变形 / 最大生成树)
链接:Heavy TransportationBackgroundHugo Heavy is happy. After the breakdown of the Cargolifter project he can now expand business. But he needs a clever man who tells him whether there really is a wa...原创 2019-02-26 13:02:53 · 612 阅读 · 0 评论 -
Gym - 101667E How Many to Be Happy?(最小生成树,最大流最小割)
题目链接:Gym - 101667E How Many to Be Happy?题意:给出一含有n个结点和m条边的图G,定义该图中的最小生成树(MST)含有的边为happy,而不在MST中的边为unhappy,对于unhappy的边e,删除最少的边数H(e)使得其变为happy,求H(e)之和。分析:由MST的性质可知,对于任意一条不在MST中的边e,会影响e构成MST的只有比它边权小...原创 2019-07-09 15:49:47 · 454 阅读 · 0 评论 -
UVA-10480 Sabotage(最大流最小割定理+输出路径)
题目链接:UVA-10480 SabotageThe regime of a small but wealthy dictatorship has been abruptly overthrown by an unexpected rebellion.Because of the enormous disturbances this is causing in world economy, ...原创 2019-07-09 15:17:50 · 291 阅读 · 0 评论 -
POJ-1087 A Plug for UNIX(网络最大流)
You are in charge of setting up the press room for the inaugural meeting of the United Nations Internet eXecutive (UNIX), which has an international mandate to make the free flow of information and i...原创 2019-07-09 13:09:23 · 387 阅读 · 0 评论 -
Dijkstra算法模板及其优先队列优化~~
Dijkstra算法:用于解决 非负路权 单源 最短路问题无优化的Dijkstra算法int N, G[maxn][maxn] = { 0 }; //N为结点数目(编号0 ~ N-1)int d[maxn], pre[maxn]; //G为邻接矩阵,G[u][v]=0表示 u、v无通路bool vis[maxn] = { false };void Dijkstra(i...原创 2019-02-08 12:27:26 · 1715 阅读 · 4 评论 -
网络流模板 —— Dinic算法(弧优化),最小费用最大流
学了几天感觉对网络流算是入门了,稍稍整理一下,同时在学习网络流的过程中看到了三篇别人很不错的blog(如下)感谢 ~~网络流相关定义及原理:https://www.cnblogs.com/rmy020718/p/9546071.htmlDinic算法+弧优化:https://www.cnblogs.com/SYCstudio/p/7260613.html网络流常见建模方法:https://...原创 2019-07-06 09:48:11 · 926 阅读 · 1 评论 -
牛客小白月赛16 J-小雨坐地铁(分层图最短路)
链接:https://ac.nowcoder.com/acm/contest/949/J来源:牛客网题目描述小雨所在的城市一共有 m 条地铁线,分别标号为 1 号线,2 号线,……,m 号线。整个城市一共有 n 个车站,编号为 1∼n。其中坐 i 号线需要花费 ai 的价格,每坐一站就需要多花费 bi 的价格。i 号线有 ci 个车站,而且这 ci 个车站都已知,如果某一站有多条地铁线经过...原创 2019-07-14 17:33:41 · 581 阅读 · 0 评论 -
2017 ECNA Problm F: Keeping On Track (图,DFS)
Acmar and Ibmar are at war! You are in charge of a rail network that transports important supplies throughout the great state of Acmar during this delicate time. The rail system is made up of a set o...原创 2019-07-03 18:53:52 · 295 阅读 · 0 评论 -
PTA L2-025 分而治之( 图 )
链接:PTA L2-025分而治之,各个击破是兵家常用的策略之一。在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可行性。输入格式:输入在第一行给出两个正整数 N 和 M(均不超过10 000),分别为敌方城市个数(于是默认城市从 1 到 N 编号)和连接两城市的通路条数。随后 M...原创 2019-03-18 21:03:02 · 469 阅读 · 0 评论 -
PAT Advanced 1013 Battle Over Cities(图,DFS/并查集)
链接:PAT Advanced 1013It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know...原创 2019-01-28 11:12:15 · 268 阅读 · 0 评论