AC 搜索与图论
文章平均质量分 69
AcWing、洛谷、CodeForces 搜索与图论
记录算法题解
算法与数学
展开
-
【ACWing】3699. 树的高度
树是一种特殊的图结构,有根树是一个有固定根的树。现在给定一棵有根树,编程求出树中所有节点到指定的根节点最远距离。输出距离根节点最远的点到根的距离。BFS记录一下层数,答案就是层数减。,表示数的顶点数和根节点的编号。的节点间有一无向条边。原创 2024-09-03 00:55:55 · 655 阅读 · 0 评论 -
【ACWing】1507. 旅行计划
城市之间都能相互连通。每条高速公路的长度和走该条公路的花费都是已知的,高速公路都是双向的。现在要从地图中的某个城市前往另一个城市。请你确定最短路径,当最短路径不唯一时,请你选取花费最小的路径(保证唯一)。共一行,首先输出从起点城市到终点城市的最短路径(花费最少的)经过的所有城市,然后输出最短路径的距离以及最小的花费。Dijkstra算法。为了输出路径,可以从终点到起点搜最短路。,分别表示城市数量,公路数量,起点城市编号,终点城市编号。之间存在一条公路,长度为。行,每行包含四个整数。原创 2024-06-30 00:38:55 · 650 阅读 · 0 评论 -
【ACWing】3083. 矩阵距离
请求出与它距离最近且值为。第一行为两个整数,分别代表。的元素就是它自己,距离为。时,与它距离最近且值为。多源BFS,从所有的。原创 2024-06-25 03:07:58 · 1089 阅读 · 0 评论 -
【ACWing】3472. 八皇后
会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。先用DFS暴力求解所有的解,应答询问的时候直接查表即可。皇后的摆放方法,定义一个皇后串。串的比较是这样的:皇后串。输出应是一个正整数,是对应于。行,每行输出对应一个输入。个皇后放在棋盘上(有。原创 2024-06-25 02:18:37 · 691 阅读 · 0 评论 -
【ACWing】1537. 递归实现排列类型枚举 II
在确定每种排列的输出顺序时,第一个数较小的先输出,第一个数相同时,第二个数较小的先输出,以此类推。的可包含重复数字的序列,请你求出其所有不重复的全排列。输出所有的不同排列,每种排列占一行。数组中包含的元素的取值范围。原创 2024-06-23 13:17:56 · 730 阅读 · 0 评论 -
【洛谷】P2712 摄像头
现有一群胆大妄为的松鼠想要抢劫食品店,为了不让摄像头拍下他们犯罪的证据,他们抢劫前的第一件事就是砸毁这些摄像头。为了便于砸毁摄像头,松鼠歹徒们把所有摄像头和摄像头能监视到的地方统一编号,一个摄像头能被砸毁的条件是该摄像头所在位置不被其他摄像头监视。先建图,然后做拓扑排序,可以用BFS,注意到入队的时候要判断一下那个位置是否有摄像头,如果没有摄像头的话不需要入队。现在你的任务是帮松鼠们计算是否可以砸掉所有摄像头,如不能则输出还没砸掉的摄像头的数量。行是摄像头的信息,包括:摄像头的位置。,表示摄像头的个数。原创 2024-01-21 17:26:05 · 926 阅读 · 0 评论 -
【ACWing】514. 寻找道路
那么这个点也不合法(因为它走到了一个与终点不连通的点)。将所有不合法的点进行标记,然后在原图中BFS求一下最短路即可,略过不合法的点。建立原图和反向图,先在反向图里从终点开始进行DFS,标记一下终点能走到的点,设。输出只有一行,包含一个整数,表示满足题目描述的最短路径的长度。1.路径上的所有点的出边所指向的点都直接或间接与终点连通。在原图里无法走到终点),接着,如果某个点能走到。,之间用一个空格隔开,表示有一条边从点。请你输出符合条件的路径的长度。如果这样的路径不存在,输出。为能走到的点,那么首先,原创 2024-01-18 17:01:38 · 371 阅读 · 0 评论 -
【ACWing】1139. 最优布线问题
为了方便数据传输,现要将它们用数据线连接起来,同一条数据线中数据的传输可以是双向的。两台计算机被连接是指它们有数据线连接。由于计算机所处的位置不同,因此不同的两台计算机的连接费用往往是不同的。当然,如果将任意两台计算机都用数据线连接,费用将是相当庞大的。为了节省费用,我们采用数据的间接传输手段,即一台计算机可以间接的通过若干台计算机(作为中转)来实现与另一台计算机的连接。现在由你负责连接这些计算机,任务是使任意两台计算机都连通(不管是直接的或间接的)。一个整数,表示最小的连接费用。,表示计算机的数目。原创 2024-01-18 15:35:10 · 357 阅读 · 0 评论 -
【ACWing】3284. 化学方程式
我们开一个函数来处理表达式,处理返回各个元素对应的个数构成的哈希表,然后比较两边表达式对应的哈希表即可。由于表达式可能是一个化学式,也可能是化学式用加号连接,所以在找到加号位置的时候,就可以处理化学式,问题就变为怎么将化学式处理为一个哈希表。递归处理出括号内部的部分的哈希表之后,下一步就是看这个括号整个的系数,这个系数就是括号后面的数字;如果遇到了字母,则说明当前处理到了一个元素,先将元素名截取出来(所有的元素都是一个大写字母开头,后面或者不接,或者接若干连续的小写字母)。,表示输入的化学方程式个数。原创 2023-10-20 16:49:18 · 112 阅读 · 0 评论 -
【ACWing】1114. 棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放。DFS每一层代表行,每一行枚举填充哪一列(当然也可以不填充这一行)。表示空白区域(数据保证不出现多余的空白行或者空白列)。对于每一组数据,给出一行输出,输出摆放的方案数目。的矩阵内描述棋盘,以及摆放棋子的数目。个棋子,则得到一个方案。,用一个空格隔开,表示了将在一个。个棋子的所有可行的摆放方案数目。行描述了棋盘的形状:每行有。原创 2023-10-09 16:51:59 · 142 阅读 · 0 评论 -
【ACWing】189. 乳草的入侵
农民约翰一直努力让他的草地充满鲜美多汁而又健康的牧草。邪恶的乳草已经在他的农场的西北部份占领了一片立足之地。周之后,这些新占领的格又可以把乳草传播到更多的格里面了。达达想要在草地被乳草完全占领之前尽可能的享用所有的牧草。每个星期,乳草传播到已被乳草占领的格子四面八方的每一个没有很多石头的格(包括垂直与水平相邻的和对角线上相邻的格)内。表示大石)构成的字符串,共同描绘了草地的完整地图。输出一个整数,表示乳草完全占领草地所需要的星期数。是左下角的格(也就是说坐标排布跟一般的。星期后占领整片土地。原创 2023-10-09 16:19:55 · 55 阅读 · 0 评论 -
【ACWing】3704. 排队
即是在一个有向无环图里求一个字典序最小的拓扑序。只需要在BFS求拓扑序的时候将队列换成优先队列即可。当符合条件的排队顺序不唯一时,编号更小的小朋友尽量更靠前。按排好队列从前到后的顺序在一行内输出每个小朋友的编号。请你找出符合所有要求的排队顺序。在安排每个人的顺序时,有。保证至少存在一个符合条件的顺序。个要求,每个要求包含两个整数。行,每行包含两个整数。原创 2023-09-25 05:06:55 · 82 阅读 · 0 评论 -
【ACWing】1400. 堆叠相框
将这些相框抽象成点,如果一个相框在另一个的上面,我们就从下面的向上面的连一条边,这样相框的相对位置就构成了一个图,并且这个图是有向无环的。具体建图的方式是,遍历相框,对于每个相框,先确定其四个角(由于题目保证了每条边都有点在最上面,所以四个角是可以确定的),然后遍历相框的四条边,如果出现了和当前相框不一样的点,则说明这个点的相框在上面。在给定图像中,每个相框的每条边都至少能看到一部分,角算作相邻两条边的部分。按照从下到上的堆叠顺序,输出所有相框的对应字母,字母之间无间隔,占一行。相框的每条边的宽度均为。原创 2023-09-25 04:45:08 · 56 阅读 · 0 评论 -
【ACWing】2716. 食物链
数据保证输入数据符号生物学特点,且不会有重复的能量流动关系出现。条能量流动关系,求其中的食物链条数。(单独一个物种也算食物链),那么对于那些出度为。,注意单独的一种孤立生物不算一条食物链。一个整数,即食物网中的食物链条数。保证答案在int范围内。为结尾的食物链的条数。原创 2023-09-24 11:53:39 · 105 阅读 · 0 评论 -
【ACWing】391. 聚会
首先证明,这三个最近公共祖先必有两个是同一个点,并且如果三个最近公共祖先不都重合,则两个不同的最近公共祖先深度一定不同,并且三个点的最近公共祖先就是深度小的那个最近公共祖先。神奇的是,乘车经过每条道路所需要的费用都是一样的。行,每行用三个正整数表示一次聚会的情况:小可可所在的城市编号,小卡卡所在的城市编号以及小Y所在的城市编号。3、某两个点在同一棵子树中,另一个点在另一棵子树中,则这个点与另外两个点的最近公共祖先都是。次聚会的地点选择在编号为Pos的城市,总共的费用是经过Cost条道路所花费的费用。原创 2023-09-09 11:27:15 · 108 阅读 · 0 评论 -
【洛谷】P1613 跑路
可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资,小A买了一个空间跑路器,每秒钟可以跑。,每条边长度均为一千米。小A想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到公司。构建新图,该图里的两个点如果一次跑路器能到,则连长度为。小A的家到公司的路可以看做一个有向图,小 A 家为点。小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在。的最短路即可,可以用Dijkstra来做。一行一个数字,表示到公司的最少秒数。存的,所以总跑路长度不能超过。,表示点的个数和边的个数。的数据满足最优解路径长度。原创 2023-09-03 03:22:25 · 95 阅读 · 0 评论 -
【ACWing】2046. 路障
先在原图里求最短路,为了使得加倍某条边后的最短路最长,显然我们不能加倍本来不在最短路里的边(否则直接取原图最短路就行了),所以我们只需要枚举最短路里的边,枚举的时候加倍之,然后暴力再求一遍最短路即可。当从一片田地走到另一片田地时,约翰总是会选择一系列具有最小总长度的道路组成的路线。输出通过使某条道路长度加倍,能使约翰的行进路线延长的最大距离。条道路中,选择一条在上面铺满干草,使得该道路的长度翻倍。每天早晨,约翰醒来,从他的房子穿过农场走到牛棚。条双向道路连接,每条道路都有一定的长度。它们计划在农场的 M。原创 2023-09-02 12:59:29 · 57 阅读 · 0 评论 -
【ACWing】4294. 修建道路
已知,一些村庄之间的道路已经修建好了。你的任务是新修一些道路,使得任意两个村庄之间都能保持连通,并且新修的道路总长度尽可能短。思路是Kruskal算法。将所有边按边长从小到大排序,然后遍历,如果发现已经联通,则略过;我们希望修建一些道路,使得任意两个村庄之间都能保持连通。输出一个整数,表示所需新修道路的最短总长度。之间的距离(即两村之间修路的长度)。之间存在一条道路,或者存在一个村庄。之间已经建有一条道路了。之间存在一条道路,并且。条已经修建好的道路。行,每行包含两个整数。原创 2023-08-27 06:50:00 · 53 阅读 · 0 评论 -
【洛谷】P6066 Watchcow S
号农场开始巡逻,每条路必须从两个方向各走恰好一遍,最后回到。保证这样的路径存在。如果有多条路径,任意输出一条即可。这是欧拉回路问题,可以用DFS解决。请输出一条满足上述要求的路径。输出经过的农场,一行一个。Farmer John有。原创 2023-07-02 01:05:19 · 95 阅读 · 0 评论 -
【洛谷】P1546 最短网络 Agri-Net
他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。FJ已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短的光纤去连接所有的农场。你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。个字符的限制,因此,某些行会紧接着另一些行。只有一个输出,其中包含连接到每个农场的光纤的最小长度。稠密图最小生成树问题,可以用Prim算法。的矩阵,表示每个农场之间的距离。个用空格分隔的数组成,实际上,由于每行。原创 2023-06-26 08:46:22 · 168 阅读 · 0 评论 -
【洛谷】P1119 灾后重建
那么我们要回答询问,只需要先求出询问的时间的那一刻,哪些村庄已经建好,然后按Floyd算法一路递推到最后修好的村庄即可。由于题目里的村庄是按编号修好的,询问的时间也是递增的,所以可以按。但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车。换句话说,只有连接着两个重建完成的村庄的公路才能通车,只能到达重建完成的村庄。村庄的路径,经过若干个已重建完成的村庄,或者村庄。村庄的路径,经过若干个已重建完成的村庄,或者村庄。,表示了每个村庄重建完成的时间,数据保证了。,表示了村庄的数目与公路的数量。原创 2023-06-25 03:13:54 · 169 阅读 · 0 评论 -
【洛谷】P1342 请柬
每个学生志愿者被指定一个确切的公共汽车站,他或她将留在那里一整天,邀请人们参与。这里的公交系统是非常特殊的:共有。号站点出发,乘公交车到一个预定的站点邀请乘客。在一天结束的时候,所有的学生都回到总部。现在需要知道的是,学生所需的公交费用的总和最小是多少。Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片。个线路,所有的线路都是单向的,连接两个站点。为起点的单源最短路,为了求返回最短路,可以建立反向边再求一遍单源最短路。输入的第一行是两个整数,代表站点个数。原创 2023-06-24 12:02:25 · 217 阅读 · 0 评论 -
【ACWing】46. 二叉搜索树的后序遍历序列
首先最后一个数一定是树根,那么从左向右找第一个大于树根的位置,如果从该位置开始向后有小于树根的数,则说明不是BST,返回false。否则递归判断左右子树。的整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。原创 2023-06-19 13:21:10 · 58 阅读 · 0 评论 -
【洛谷】P2802 回家
只要他走到有鼠标的格子,他不需要任何时间即可拾取。格子上的鼠标可以瞬间补满,所以每次经过这个格子都有鼠标。就算到了某个有鼠标的格子才死去, 他也不能通过拾取鼠标补满HP。即使在家门口死去, 他也不能算完成任务回到家中。每次他能向上下左右四个方向移动一格(当然小H不可以静止不动), 但不能离开封锁线,否则就被打死了。BFS即可,每一步不能出界,不能走到障碍物,不能走到之前走过的状态,也不能走到血量变为。:小 H 出发点, 也是一片空地。:空地, 小 H 可以自由行走。:有鼠标在上面的空地。原创 2023-06-18 03:03:00 · 545 阅读 · 0 评论 -
【CodeForces】CF1037D Valid BFS?
开始BFS,首先将出队的点的所有未遍历过的点都放入一个哈希表,然后看一下序列,按序列里的次序遍历哈希表里的点(如果某个点不在哈希表里,则序列不成立),依次再加入队列以便下一轮BFS。这样直到所有点都遍历完成,如果一直没有问题,则说明序列成立。一定是一开始就会遍历到的点,接下来从。可以直接BFS模拟。原创 2023-06-18 02:29:45 · 122 阅读 · 0 评论 -
【ACWing】3556. 最短路径
条边的时候,直接标记一下那些边不能走即可。条边构成的无重边和自环的无向连通图。个空格隔开的整数,表示去掉的边的编号。可以用Dijkstra算法。每组数据第一行包含三个整数。行,每行包含三个整数。每组数据输出占两行。原创 2022-12-18 03:35:04 · 427 阅读 · 0 评论 -
【ACWing】728. 变身程序员
公司的程序员不够用了,决定把产品经理都转变为程序员以解决开发时间长的问题。个正方向上)相邻的产品经理都会变成程序员。返回直到单元格中没有产品经理为止所必须经过的最小分钟数。读取时可以按行读取,直到读取到空行为止,再对读取的所有行做转换处理。),毎行是按照空格分割的数字(不固定,毎行数字个数不超过。如果能够将所有产品经理变成程序员,则输出最小的分钟数。如果不能够将所有的产品经理变成程序员,则返回。每分钟,任何与程序员(在。其中每个数组项的取值仅为。不固定多行(行数不超过。原创 2022-12-10 11:02:47 · 621 阅读 · 0 评论 -
【ACWing】3429. 全排列
可以DFS,依次枚举当前位置填哪个字母,每一层从小到大枚举所有字母。输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在。,而且给定的字符串中的字母已经按照从小到大的顺序排列。,输出这个字符串的所有全排列。我们假设对于小写字母有。输出这个字符串的所有排列方式,每行一个排列。给定一个由不同的小写字母组成的字符串。要求字母序比较小的排列在前面。字母序如下定义:已知。原创 2022-11-27 04:19:48 · 571 阅读 · 0 评论 -
【洛谷】P1576 最小花费
块钱最多能转为多少钱,则问题变为最短路问题(可以对每条边取对数再取反。当然代码里不需要这么写)。根据数据范围,可以用朴素Dijkstra来做。个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问。,分别表示总人数和可以互相转账的人的对数。元最少需要的总费用。之间可以直接或间接地转账。最少需要多少钱使得转账后。的人之间互相转账需要扣除。最后一行输入两个正整数。第一行输入两个正整数。行每行输入三个正整数。原创 2022-09-19 01:54:49 · 460 阅读 · 0 评论 -
【ACWing】3488. 最短路径
由此可知,不加这些非必要边的情况下,整个图实际上是一棵树,这样。到任意点路径唯一,从而可以直接DFS来做。号城市到其他城市的最短路,如果无法到达,输出。行两个整数,表示相连的两个城市的编号。,所以在建图的时候,如果当前加的边是。已经连通了,那么当前边是不可能出现在。到某个顶点的最短路上的(因为走。的城市到其他城市的最短距离。,并且在未加当前边的时候,原创 2022-09-19 01:26:39 · 253 阅读 · 0 评论 -
【洛谷】P1347 排序
首先要去除掉平行边的影响,此处用邻接矩阵存图,并且记录已经出现的所有点是哪些。每次多给一个不等式,就对已经出现过的点做拓扑排序,如果发现了环,则已经知道了有矛盾了,直接输出有矛盾;否则的话,说明对于已经给出的点而言是存在拓扑排序的,如果发现拓扑排序不唯一,则说明还需要继续读入不等式;一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列。的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序。符号,一个大写字母,表示两个元素之间的关系。表示需要排序的元素数量,原创 2022-09-18 15:28:33 · 550 阅读 · 1 评论 -
【ACWing】3095. 冻结
在这个愿望被实现以后的世界里,人们享受着魔法卡片(SpellCard,又名符卡)带来的便捷。例如,我们熟知的Cirno,她的冰冻魔法当然会有对应的SpellCard了。当然,更加令人惊讶的是,居然有冻结时间的魔法,Cirno的冻青蛙比起这些来真是小巫见大巫了。当然,在本题中我们并不是要来研究历史的,而是研究魔法的应用。的SpellCard,也就是说,在通过某条路径时,我们可以选择使用一张卡片,这样,我们通过这一条道路的时间就可以减少到原先的一半。给定以上的信息,你的任务是:求出在可以使用这不超过。原创 2022-09-18 07:29:34 · 155 阅读 · 0 评论 -
【ACWing】1488. 最短距离
多源最短路问题,可以开个超级源点然后从超级源点开始做单源最短路。的村庄与其距离最近的商店之间的距离。,问该村庄距离最近的商店有多远?对于每个询问,输出该询问的结果。所有村庄都是连通的。个询问给出一个村庄的编号。个有商店的村庄编号是。行,每行包含三个整数。行,每行包含一个整数。个有商店的村庄编号是。行,每行包含一个整数。原创 2022-09-18 06:26:47 · 207 阅读 · 0 评论 -
【ACWing】4275. Dijkstra序列
在每一步中,我们找到一个尚未在集合内且与源顶点距离最小的顶点,并将其收于集合中。因此,通过Dijkstra算法,我们可以逐步生成一个有序的顶点序列,我们称之为Dijkstra序列。对于一个给定的图,可能有多个Dijkstra序列。它用于解决单源最短路径问题,即指定一个特定源顶点,求该顶点到给定图的所有其他顶点的最短路径。对于每次询问,只需要看一下序列中的点是否能被Dijkstra算法的每次循环取到即可。注意,序列中的第一个顶点即为指定的特定源顶点。个序列的判断,如果序列是Dijkstra序列则输出。原创 2022-09-18 02:08:10 · 208 阅读 · 0 评论 -
【洛谷】P3275 糖果
老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。老师至少需要准备的糖果数,如果不能满足小朋友们的所有要求,就输出。个小朋友分到的糖果必须不多于第。个小朋友分到的糖果必须少于第。个小朋友分到的糖果必须多于第。个小朋友分到的糖果;个小朋友分到的糖果;个小朋友分到的糖果;个小朋友分到的糖果;...原创 2022-08-14 08:42:07 · 257 阅读 · 0 评论 -
【洛谷】P1462 通往奥格瑞玛的道路
出发时他的血量是满的。歪嘴哦不希望花很多钱,他想知道,在可以到达奥格瑞玛的情况下,他所经过的所有城市中最多的一次收取的费用的最小值是多少。条双向的公路,连接着两个城市,从某个城市到另一个城市,会遭到联盟的攻击,进而损失一定的血量。在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士,他是部落的中坚力量。在被众多联盟的士兵攻击后,他决定逃回自己的家乡奥格瑞玛。本题是要求在保证血量不变为负的前提下,单次最大收费的最小值可以是多少。仅一个整数,表示歪嘴哦交费最多的一次的最小值。,可能有两条边连接着相同的城市。...原创 2022-08-13 15:57:04 · 804 阅读 · 0 评论 -
【ACWing】406. 放置机器人
首先,这个二分图的任何一个匹配对应着一种放置方案每条边对应一个空地,并且同一个行连通块里只能有一个机器人(因为会互相攻击),同一个列连通块也只能有一个机器人。其次,任意一个放置方案,对应一个匹配。将除了墙的地面定义一个等价关系叫行连通,两个非墙地面行连通当且仅当从一个能沿着行不经过墙走到另一个。在机器人不能互相打到对方的情况下,最多放置多少个机器人。给出一个地图(网格),格子分为空地,草地,墙壁。视为二分图右边的点,如果某个行连通块和某个列连通块有交集,并且交集是。第二行包含一个整数,表示机器人的个数。..原创 2022-08-01 01:10:15 · 210 阅读 · 0 评论 -
【洛谷】P1395 会议
现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。其实就是求树中的一个点,使得其余点与之距离和最小,如果存在多个和最小的点,则取编号最小的那个。表示村长将会在哪个村民家中举办会议。假设我们不知道该性质,也可以求解。个村民的家联通,每条路径的长度都为。值最小的点是谁即可。第二遍DFS的时候,如果。的家之间存在一条路径。表示距离之和的最小值。......原创 2022-07-18 09:27:11 · 507 阅读 · 0 评论 -
【洛谷】P2341 受欢迎的牛
每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果。头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。的点有多少个,如果不唯一,则没有奶牛可以当明星。可以用Tarjan算法先对图缩点,这样就可以看缩点后的出度为。一行单独一个整数,表示明星奶牛的数量。的点的size即可。...原创 2022-07-18 08:38:17 · 552 阅读 · 0 评论 -
【ACWing】4337. 还是畅通工程
https://www.acwing.com/problem/content/description/4340/某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入格式:测试输入包含若干测试用例。每个测试用例的第111行给出村庄数目NNN;随后的N(N−1)2N(N−1)2N(N−1)2行对应村庄间的距离,每行包含原创 2022-07-11 10:26:07 · 149 阅读 · 0 评论