
图论
文章平均质量分 77
CCloth
这个作者很懒,什么都没留下…
展开
-
[二分图][拓扑排序]Cars Codeforces1635E
对于二分图上的一条双向边(u, v),如果u车的方向向左且u和v是背道而驰,那么v车肯定在u车左边,也就是v车坐标大于u车,我们用单向边u->v表示v坐标大于u的关系,同样还有u车的方向向左且u和v是相向而行、u车的方向向右且u和v是背道而驰、u车的方向向右且u和v是相向而行这一共四种情况。在一个数轴上有n辆汽车,它们的方向只能是左和右,现在给出m个前提,每个前提有两种类型,要么是x车和y车相向而行,要么是x车和y车背道而驰,问在这m个前提下如何分配每辆车的方向和在数轴上的坐标。原创 2023-01-06 22:11:02 · 523 阅读 · 0 评论 -
[dp][图论]Node Pairs Codeforces1763E
其实知道了p可达图最少点数就知道了最多的单向连通数了,因为(u, v)之间的关系就三种,要么是双向连通,要么是单向连通,要么是不连通,而(u, v)的总数一共是n*(n-1)/2个,现在已知其中有p个是双向连通,那么单向连通+不连通个数就是n*(n-1)/2-p个,由于要单向连通数尽量多,那么自然就是n*(n-1)/2-p个了。其中p可达即为u < v且从u能到v从v也能到u的(u, v)个数,单向连通即u < v且从u能到v或v能到u的(u, v)个数。原创 2023-01-02 17:15:37 · 220 阅读 · 0 评论 -
[好题][图论][思维]Tick, Tock Codeforces1758E
不妨设最终矩阵上的值全为0,那么任意具有边权k的边(u, v)就需要(val[u]+val[v]+k)%h == 0,在这个限制下只要确定连通块上的某一点的点权那整个连通块点权都确定了。接下来考虑还没加进来的-1边,可以知道这些-1边最终会让这些连通块完全连通,并且若有一条-1边连接(u, v),且u和v分别属于两不同连通块,那么这条-1边的边权可以任取[0, h)中的每一个值,这是因为u和v的点权可以任取[0, +∞)中的任何值,所以边权总能凑出来这h种可能。原创 2023-01-01 18:08:32 · 522 阅读 · 0 评论 -
[思维][找环]Edge Split Codeforces1726D
这样问题就可以转化为如何选出一个无环的边集A,使得剩下的边集B仍然无环,比较容易想到构造出一棵树作为A,这样剩下的边数可能为0、1、2和3,只要剩下边数不为3,那它们一定不可能构成环,可以达到最优解,而对于剩下边数为3的情况,如果三边构不成三角形,那同样能得到最优解,如果三边构成了三角形,那就选择其中一条边e加入树A,树中多了一条边肯定会出现环,所以还需要在树A的环路中删除一条非e的边,这样最终树A和剩下边集B中均无回路,可以达到最优解。原创 2022-09-28 08:47:32 · 264 阅读 · 0 评论 -
[建图]2+ doors Codeforces1715D
类似第46届icpc沈阳站的一道题目,也是将30位分开单独来看,建30张图。对于每位都进行这样的处理,就能求出这n个数在这一位上取值是多少了。给出q个条件,需要你构造出满足这些条件的字典序最小的长度为n的数组。每个条件由i j x构成,表示第i个数按位或第j个数结果为x。原创 2022-09-25 10:11:16 · 417 阅读 · 0 评论 -
[拓扑排序][二分]Toss a Coin to Your Graph... Codeforces1679D
二分答案,首先二分出一个x,check中检测是否能不经过大于x的点走完k-1步,而check的具体实现则需要重新建图,只考虑那些点权小于等于x的点,如果新图中出现了回路,那么显然一定可以return true,如果没有回路那新图就是一个DAG(有向无环图),直接拓扑排序求最远距离,如果最远距离大于等于k-1,那就可以return true,否则return false。给出n个点,m条有向边,以及一个参数k,每个点有一个点权,可以任选一个起点,并从该起点走k-1步,输出路径上最大值的最小值。原创 2022-09-22 22:57:47 · 265 阅读 · 0 评论 -
[kruskal]Darnassus 2022杭电多校第8场 1007
有n个点,给出一个长度为n的全排列a,第i个点的点权是ai,对于这n个点之间可以任意连边,边权为|j-i|*|a[j]-a[i]|,问形成的连通图的最小生成树是多少。要注意的是桶排序的时候用vector数组可能会比用链表(链式前向星)慢一点,虽然用快读或火车头可以水过去,但最好还是用链表实现。...原创 2022-08-12 17:51:21 · 419 阅读 · 0 评论 -
[最短路]猛犸不上 Ban 2021RoboCom决赛D
在一个名叫刀塔的国家里,有一只猛犸正在到处跑着,希望能够用它的长角抛物技能来撞飞别人。已知刀塔国有 N 座城市,城市之间由 M 条道路互相连接,为了拦住这头猛犸,每条道路上设置了 Vi 人的团队。猛犸经过一条道路后,就会把路上的人全部撞飞。作为一头爱喝雪碧的仁慈的猛犸,自然希望尽可能的少撞飞人。请你帮忙计算一下在最优的选择下,最少需要撞飞多少人才能够到达目标城市?......原创 2022-08-07 19:39:02 · 256 阅读 · 0 评论 -
[树上倍增]Eezie and Pie 2022牛客多校第6场 B
Eezie, a pie maniac, would like to have some pies with her friends on a hot summer day. However, the weather is so hot that she can't go outdoors and has to call for the delivery service.The city Eezie lives in can be represented by NNN nodes connected b原创 2022-08-06 20:10:54 · 268 阅读 · 0 评论 -
[最小生成树]Planar graph 2022杭电多校第6场 1010
图可能是个不连通图,不过这并不影响我们解题,显然树这种结构就不会出现环,所以题目就是得到各连通分量的生成树,可以用kruskal算法跑一遍图,由于删边方案的字典序最小,所以需要先遍历编号大的边,也就是倒序遍历边集,当两点处于同一连通块内时记录答案。给出一个n个点m条边的图,求使其不出现环所需要删除的最少边数以及删边方案中字典序最小的那个。......原创 2022-08-04 21:05:57 · 263 阅读 · 0 评论 -
[最短路][思维]Slipper 2022杭电多校第5场 C
一开始想到的是对于深度差为k的点对建边,但是由于这两层之间任意两点都需要一条连边,显然会添加很多条边,这样跑最短路就会TLE,一个更好的思路是对于这两层建立一个虚点,各层上的点都连到虚点上,这样就会少添加很多边,不过还需要注意不能只用一个虚点,对于向上传送建立一个虚点,对于向下传送还需要建立一个虚点,这是为了防止利用传送在同层间任意转移。给出一棵n点构成的树,树上每条边都有边权wi,表示移动所需的能量,对于深度差为k的点还可以通过花费p点能量传送过去,给出起点s和终点t,问从起点到达终点所需最少能量。...原创 2022-08-02 23:36:42 · 285 阅读 · 0 评论 -
[lca][思维]Ancestor 2022牛客多校第3场 A
具体做法就是先建好两棵树,然后对于A树维护一个关键点的前缀LCA数组front[i][1],再维护一个后缀LCA数组back[i][1],对于B树同理得到front[i][2],back[i][2],然后就可以枚举移除哪个关键点了,剩下点在A树中的LCA就是lca(front[i-1][1],back[i+1][1]),在B树中的LCA就是lca(front[i-1][2],back[i+1][2]),注意边界的特判。......原创 2022-07-27 10:14:41 · 206 阅读 · 0 评论 -
[最短路]Journey 2022牛客多校第3场 J
给出n个交叉路口的4端点,以及起点和终点,除了右转不需要等红灯,左转、直行和掉头都需要等红灯,求从起点到终点的最少过几个红灯。原创 2022-07-26 11:34:37 · 142 阅读 · 0 评论 -
[负环][二分]Link with Game Glitch 2022牛客多校第2场 D
给出n个物品,以及m条转换关系,每条转换关系用四个整数表示a,b,c,d,含义是可以把k*a的b物品转换为k*c的d物品,k可以取任意正值,由于这样可能导致物品无限再生,所以需要引入一个损耗参数w,也就是用k*a的b物品转换为w*k*c的d物品,询问最大的损耗参数w以保证不存在无限再生现象。...原创 2022-07-24 11:51:15 · 487 阅读 · 0 评论 -
[最短路]打怪升级 2021RoboCom初赛C
很多游戏都有打怪升级的环节,玩家需要打败一系列怪兽去赢取成就和徽章。这里我们考虑一种简单的打怪升级游戏,游戏规则是,给定有 N 个堡垒的地图,堡垒之间有道路相连,每条道路上有一只怪兽把守。怪兽本身有能量,手里的武器有价值。打败怪兽需要的能量等于怪兽本身的能量,而怪兽一旦被打败,武器就归玩家所有 —— 当然缴获的武器价值越高,玩家就越开心。你的任务有两件:输入第一行给出两个正整数 N (≤1000) 和 M,其中 N 是堡垒总数,M 是怪兽总数。为简单起见,我们将堡垒从 1 到 N 编号。随后 M 行,第 i原创 2022-07-10 09:48:33 · 230 阅读 · 0 评论 -
[最小生成树][LCA]Qin Shi Huang‘s National Road System HDU4081
During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in China ---- they were Qi, Chu, Yan, Han, Zhao, Wei and Qin. Ying Zheng was the king of the kingdom Qin. Through 9 years of wars, he finally conquered all six o原创 2022-05-23 18:26:40 · 181 阅读 · 1 评论 -
[附测试点分析][拓扑排序]计算图 PTA L3-023
“计算图”(computational graph)是现代深度学习系统的基础执行引擎,提供了一种表示任意数学表达式的方法,例如用有向无环图表示的神经网络。 图中的节点表示基本操作或输入变量,边表示节点之间的中间值的依赖性。 例如,下图就是一个函数f(x1,x2)=lnx1+x1x2−sinx2的计算图。现在给定一个计算图,请你根据所有输入变量计算函数值及其偏导数(即梯度)。 例如,给定输入x1=2,x2=5,上述计算图获得函数值f(2,5)=ln(2)+2×5−sin(5)=11..原创 2022-04-22 22:12:11 · 470 阅读 · 0 评论 -
[建图][有坑]愿天下有情人都是失散多年的兄妹 PTA L2-016
呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高祖父母)则不可通婚。本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚?输入格式:输入第一行给出一个正整数N(2≤N≤10^4),随后N行,每行按以下格式给出一个人的信息:本人ID 性别 父亲ID 母亲ID其中ID是5位数字,每人不同;性别M代表男性、F代表女性。如果某人的父亲或母亲已经不可考,则相应的ID位置上标记为-1。接下来给出一个正整数K,随后K行,每行给出一对...原创 2022-04-20 22:46:25 · 94 阅读 · 0 评论 -
[分层图最短路]限高杆 2020年蓝桥杯
某市有n个路口,有m段道路连接这些路口,组成了该市的公路系统。其中一段道路两端一定连接两个不同的路口。道路中间不会穿过路口。由于各种原因,在一部分道路的中间设置了一些限高杆,有限高杆的路段货车无法通过。在该市有两个重要的市场A和 B,分别在路口1和n附近,货车从市场A出发,首先走到路口1,然后经过公路系统走到路口n,才能到达市场B。两个市场非常繁华,每天有很多货车往返于两个市场之间。市长发现,由于限高杆很多,导致货车可能需要绕行才能往返于市场之间,这使得...原创 2022-04-07 14:36:32 · 1016 阅读 · 0 评论 -
[记忆化搜索]那就别担心了 PTA L3-025
下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题,其实都不用担心。博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有 3 条不同的推理路径。输入格式:输入首先在一原创 2022-03-20 14:52:25 · 305 阅读 · 0 评论 -
[好题][floyd][模拟]地铁一日游 PTA L3-022
森森喜欢坐地铁。这个假期,他终于来到了传说中的地铁之城——魔都,打算好好过一把坐地铁的瘾!魔都地铁的计价规则是:起步价 2 元,出发站与到达站的最短距离(即计费距离)每 K 公里增加 1 元车费。例如取K= 10,动安寺站离魔都绿桥站为 40 公里,则车费为 2 + 4 = 6 元。为了获得最大的满足感,森森决定用以下的方式坐地铁:在某一站上车(不妨设为地铁站A),则对于所有车费相同的到达站,森森只会在计费距离最远的站或线路末端站点出站,然后用森森美图 App 在站点外拍一张认证照,再按同...原创 2022-03-19 21:35:17 · 1293 阅读 · 1 评论 -
[究极好题][最小生成树]野餐规划 AcWing347
一群小丑演员,以其出色的柔术表演,可以无限量的钻进同一辆汽车中,而闻名世界。现在他们想要去公园玩耍,但是他们的经费非常紧缺。他们将乘车前往公园,为了减少花费,他们决定选择一种合理的乘车方式,可以使得他们去往公园需要的所有汽车行驶的总公里数最少。为此,他们愿意通过很多人挤在同一辆车的方式,来减少汽车行驶的总花销。由此,他们可以很多人驾车到某一个兄弟的家里,然后所有人都钻进一辆车里,再继续前进。公园的停车场能停放的车的数量有限,而且因为公园有入场费,所以一旦一辆车子进入到公园内,就必须停在那原创 2022-03-16 15:03:28 · 521 阅读 · 0 评论 -
[离散化][倍增][floyd变形]牛站 AcWing345
给定一张由T条边构成的无向图,点的编号为 1∼1000之间的整数。求从起点S到终点E恰好经过N条边(可以重复经过)的最短路。注意: 数据保证一定有解。输入格式第1行:包含四个整数 N,T,S,E。第 2..T+1行:每行包含三个整数,描述一条边的边长以及构成边的两个点的编号。输出格式输出一个整数,表示最短路的长度。数据范围2≤T≤100,2≤N≤10^6输入样例:2 6 6 411 4 64 4 88 4 96 6 82 6...原创 2022-03-11 22:23:15 · 318 阅读 · 0 评论 -
[无向图最小环][floyd变形]观光之旅 AcWing344
给定一张无向图,求图中一个至少包含 3 个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。输入格式第一行包含两个整数 N 和 M,表示无向图有 N 个点,M 条边。接下来 M 行,每行包含三个整数 u,v,l,表示点 u 和点 v 之间有一条边,边长为 l。输出格式输出占一行,包含最小环的所有节点(按顺序输出),如果不存在则输出 No solution.。数据范围1≤N≤100,原创 2022-03-09 21:09:51 · 212 阅读 · 0 评论 -
[拓扑排序]排序 AcWing343
给定n个变量和m个不等式。其中n小于等于26,变量分别用前n的大写英文字母表示。不等式之间具有传递性,即若 A>B且 B>C,则A>C。请从前往后遍历每对关系,每次遍历时判断:如果能够确定全部关系且无矛盾,则结束循环,输出确定的次序; 如果发生矛盾,则结束循环,输出有矛盾; 如果循环结束时没有发生上述两种情况,则输出无定解。输入格式输入包含多组测试数据。每组测试数据,第一行包含两个整数n和m。接下来m行,每行包含一个不等式,不等...原创 2022-03-09 16:57:34 · 120 阅读 · 0 评论 -
[好题][缩点][拓扑排序][dijkstra]道路与航线 AcWing342
农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为 1∼T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路i或者航线i连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也可以从Bi到Ai,花费都是Ci。然而航线与之不同,只可...原创 2022-03-06 11:24:12 · 275 阅读 · 0 评论 -
[spfa][slf优化]道路与航线 AcWing342
农夫约翰正在一个新的销售区域对他的牛奶销售方案进行调查。他想把牛奶送到T个城镇,编号为 1∼T。这些城镇之间通过R条道路 (编号为1到R) 和P条航线 (编号为1到P) 连接。每条道路i或者航线i连接城镇Ai到Bi,花费为Ci。对于道路,0≤Ci≤10,000;然而航线的花费很神奇,花费Ci可能是负数(−10,000≤Ci≤10,000)。道路是双向的,可以从Ai到Bi,也可以从Bi到Ai,花费都是Ci。然而航线与之不同,只可...原创 2022-03-06 11:08:18 · 452 阅读 · 0 评论 -
[最小生成树][思维]走廊泼水节 AcWing346
给定一棵N个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意:树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数t,表示共有t组测试数据。对于每组测试数据,第一行包含整数N。接下来 N−1行,每行三个整数 X,Y,Z,表示X节点与Y节点之间存在一条边,长度为Z。输出格式每组数据输出一个整数,表示权值总和最小值。每个结果占一行。数据范围1≤...原创 2022-03-05 19:36:29 · 236 阅读 · 1 评论 -
[好题][kruskal重构树][树上倍增]Life is a Game 第46届icpc区域赛上海站H
题目描述Life is a game.The world can be regarded as an undirected connected graph of nnn cities and mmm undirected roads between the cities. Now you, the life game player, are going to play the life game on the world graph.Initially, you are at the x-th ci原创 2022-03-05 16:18:10 · 880 阅读 · 0 评论 -
[最短路变形][反向建图]最优贸易 AcWing341
C国有n个大城市和m条道路,每条道路连接这n个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这m条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为1条。C国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到C国旅游。当他得知“同一种商品在不同城市的价格可能会不同”这一信息之后,便决定在旅游的同时,...原创 2022-03-01 22:15:40 · 135 阅读 · 0 评论 -
[分层图最短路][最短路变形]通信线路 AcWing340
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站 Ai 和 Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费 Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完成升级。输入格式第 1原创 2022-03-01 20:21:09 · 272 阅读 · 0 评论 -
[分层图最短路]飞行路线 洛谷P4568
题目描述Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到 n−1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice 和 Bob 现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么 Alice 和 Bob 这次出行最少花费多少?输入格式第一行三个整数 n,m,k,分别表示城市数,航线数和免...原创 2022-03-01 19:49:49 · 721 阅读 · 2 评论 -
网络流之EK算法求最大流
求最大流的算法有很多种,EK算法就是其中较简单的一种,这个算法没有进行太多的优化,时间复杂度是O(nm^2)。这个算法的核心就是不断去维护残量图。先对原图建一个残量图,初始残量图就是每条边都加一条反向的0权边,之后进行若干次bfs,每次bfs都去寻找一条从起点到终点的通路,找到以后通路上的各边权减去最小边权,同时反向边加上最小边权,这可能使得某些边的权为0,当边权为0说明这条路已经不能再有流量了,也就是条断边。随着bfs次数增多,这个图最终会变得不再连通,此时就得到了答案了,答案就是之前每次找到的最小边原创 2022-02-24 14:12:18 · 495 阅读 · 0 评论 -
[最近公共祖先]仓鼠找 sugar 洛谷P3398
题目描述小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c)到图书馆(d)。他们都会走最短路径。现在小仓鼠希望知道,有没有可能在某个地方,可以碰到他的基友?小仓鼠那么弱,还要天天被zzq大爷虐,请你快来救救他吧!输入格式第一行两个正整数n和q,表示这棵树节点的个数和询问的个数。接下来n-1行,每行两个正整数u和v,表示节点u到节点v之间有一条边。接原创 2022-02-15 22:37:46 · 83 阅读 · 0 评论 -
[树链长度][最近公共祖先]Distance Queries POJ1986
Farmer John's cows refused to run in his marathon since he chose a path much too long for their leisurely lifestyle. He therefore wants to find a path of a more reasonable length. The input to this problem consists of the same input as in "Navigation Night原创 2022-02-15 17:38:05 · 188 阅读 · 0 评论 -
[最近公共祖先]聚会 LibreOJ10136
题目描述原题来自:AHOI 2008Y 岛风景美丽宜人,气候温和,物产丰富。Y 岛上有N个城市,有N-1 条城市间的道路连接着它们。每一条道路都连接某两个城市。幸运的是,小可可通过这些道路可以走遍 Y 岛的所有城市。神奇的是,乘车经过每条道路所需要的费用都是一样的。小可可,小卡卡和小 YY 经常想聚会,每次聚会,他们都会选择一个城市,使得三个人到达这个城市的总费用最小。由于他们计划中还会有很多次聚会,每次都选择一个地点是很烦人的事情,所以他们决定把这件事情交给你来完成。他们会提供给你地...原创 2022-02-15 16:41:49 · 193 阅读 · 0 评论 -
[树形dp]会议 洛谷P1395
题目描述有一个村庄居住着 n 个村民,有 n−1 条路径使得这 n 个村民的家联通,每条路径的长度都为 1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。输入格式第一行,一个数 n,表示有 n 个村民。接下来 n-1 行,每行两个数字 a 和 b,表示村民 a 的家和村民 b 的家之间存在一条路径。输出格式一行输出两个数字原创 2022-02-15 11:18:15 · 580 阅读 · 0 评论 -
[floyd][最小瓶颈路]Cow Hurdles POJ3615
Farmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. They are getting tired, though, so they want to be able to use as little energy as possible to jump over the hurdles.Obv原创 2022-02-14 20:12:27 · 349 阅读 · 0 评论 -
[最近公共祖先][最大瓶颈树]车 51Nod3061
A星球有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物,小明想知道每辆车在不超过车辆限重的情况下,最大的载重是多少。Input第一行两个整数n,m,表示有n座城市和m条道路,以空格隔开。 接下来m行每行三个整数x,y,z,表示从x号城市到y号城市有一条限重为z的道路。 其中x≠y,两座城市之间可能有多条道路 。 接下来一行有一个整数q,表示有q辆货车需要运货。 接下来q行,每行两个整数a,b,表示一辆货车需要从a城市运输货物到b城市,原创 2022-02-14 14:35:04 · 300 阅读 · 0 评论 -
最近公共祖先之树上倍增求法
一、问题引入最近公共祖先(LCA)是求有根树上两点的深度最低的祖先节点,如下图,点5和点2的最近公共祖先为点4,点5和点3的最近公共祖先为点1,点5和点1的最近公共祖先为点1。二、朴素算法知道LCA定义后考虑最暴力的求解方法,可以先让在下面的点一层一层往上爬,直到两点具有相同深度(高度),之后两点同时一层一层往上爬,直到两点相同,这个相同的点就是最近公共祖先,若有m次询问,该算法时间复杂度为O(nm),显然过于暴力了。三、树上倍增算法朴素算法中找祖先节点都是一层一层地找,这样原创 2022-02-14 11:53:42 · 597 阅读 · 1 评论