图论
文章平均质量分 65
图论类题目
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
AcWing 1977. 信息中继(基环树,并查集)
【题目描述】农夫约翰有NNN头奶牛,编号1∼N1\sim N1∼N。通过使用易拉罐和绳子构成的土制电话,它们会在约翰不注意的时候相互通信。每头奶牛最多可以将消息转发给另一头奶牛:对于奶牛iii,它会将自己收到的任何信息转发给奶牛FiF_iFi(FiF_iFi与iii一定不同)。如果FiF_iFi为000,则奶牛iii不转发消息。不幸的是,奶牛们意识到来自某些奶牛的消息可能最终陷入循环之中,不断地被转发。请确定所有奶牛中有多少只奶牛发出的消息不会永远陷入循环之中。【输入格式】第一行包含整原创 2022-06-12 18:24:17 · 240 阅读 · 0 评论 -
AcWing 1921. 重新排列奶牛(环图)
【题目描述】农夫约翰的NNN头奶牛排成一排,编号1∼N1\sim N1∼N。它们的排序可以由一个数组AAA来描述,其中A(i)A(i)A(i)是位于位置iii的奶牛的编号。约翰希望将它们重新排列为一个不同的顺序。新顺序用数组BBB来描述,其中B(i)B(i)B(i)是位于位置iii的奶牛的编号。假设奶牛开始时的顺序为:并假设约翰希望它们重新排列为:为了从AAA顺序重新排列为BBB顺序,奶牛们进行了许多“循环”移位。所谓循环移位,是指挑选排列中的若干头奶牛分在一组,组中奶牛进行循环移动位置,即原创 2022-06-11 11:32:09 · 160 阅读 · 0 评论 -
PTA L3-028 森森旅游(Dijkstra)
【题目描述】好久没出去旅游啦!森森决定去Z省旅游一下。Z省有nnn座城市(从1∼n1\sim n1∼n编号)以及mmm条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,例如车票跟机票一般不是一个价格)。Z省为了鼓励大家在省内多逛逛,推出了旅游金计划:在iii号城市可以用111元现金兑换aia_iai元旅游金(只要现金足够,可以无限次兑换)。城市间的交通即可以使用现金支付路费,也可以用旅游金支付。具体原创 2022-03-30 17:20:36 · 1014 阅读 · 0 评论 -
【算法题归纳合集】图论-有向图的强连通分量
一、AcWing 1174. 受欢迎的牛【题目描述】每一头牛的愿望就是变成一头最受欢迎的牛。现在有NNN头牛,编号从1∼N1\sim N1∼N,给你MMM对整数(A,B)(A,B)(A,B),表示牛AAA认为牛BBB受欢迎。这种关系是具有传递性的,如果AAA认为BBB受欢迎,BBB认为CCC受欢迎,那么牛AAA也认为牛CCC受欢迎。你的任务是求出有多少头牛被除自己之外的所有牛认为是受欢迎的。【输入格式】第一行两个数N,MN,MN,M;接下来MMM行,每行两个数A,BA,BA,B,意思是AAA原创 2022-03-23 17:39:48 · 1605 阅读 · 0 评论 -
连通分量、强连通分量与Tarjan算法
【定义】对于一个有向图GGG,其连通分量为:对于分量中任意两点u,vu,vu,v,必然可以从uuu走到vvv,且从vvv走到uuu。强连通分量就是极大连通分量。即一个连通分量加上任何一些点之后它都不是一个连通分量,那么就把它称为强连通分量。求强连通分量的意义在于能够把任意一个有向图经过缩点之后转化成一个有向无环图(DAG图),缩点是指将所有强连通分量缩成一个点。【Tarjan算法】首先我们按DFS序遍历一个图,那么这个图中的所有边可以分为四种:那么某个点如果在强连通分量中,有以下两种情况:原创 2022-03-23 16:13:42 · 813 阅读 · 0 评论 -
AcWing 1497. 树的遍历(递归建树)
【题目描述】一个二叉树,树中每个节点的权值互不相同。现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。【输入格式】第一行包含整数NNN,表示二叉树的节点数。第二行包含NNN个整数,表示二叉树的后序遍历。第三行包含NNN个整数,表示二叉树的中序遍历。【输出格式】输出一行NNN个整数,表示二叉树的层序遍历。【数据范围】1≤N≤301≤N≤301≤N≤30官方并未给出各节点权值的取值范围,为方便起见,在本网站范围取为1∼N1\sim N1∼N。【输入样例】72 3 1 5 7 6原创 2022-03-14 15:11:01 · 952 阅读 · 0 评论 -
【模板题】拓扑排序
一、AcWing 848. 有向图的拓扑序列【题目描述】给定一个nnn个点mmm条边的有向图,点的编号是1∼n1\sim n1∼n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出−1-1−1。若一个由图中所有点构成的序列AAA满足:对于图中的每条边(x,y)(x,y)(x,y),xxx在AAA中都出现在yyy之前,则称AAA是该图的一个拓扑序列。【输入格式】第一行包含两个整数nnn和mmm。接下来mmm行,每行包含两个整数xxx和yyy,表示存在一条从点x原创 2022-03-14 08:27:39 · 342 阅读 · 0 评论 -
【模板题】树与图的广度优先遍历
一、AcWing 847. 图中点的层次【题目描述】给定一个nnn个点mmm条边的有向图,图中可能存在重边和自环。所有边的长度都是111,点的编号为1∼n1\sim n1∼n。请你求出111号点到nnn号点的最短距离,如果从111号点无法走到nnn号点,输出−1-1−1。【输入格式】第一行包含两个整数nnn和mmm。接下来mmm行,每行包含两个整数aaa和bbb,表示存在一条从aaa走到bbb的长度为111的边。【输出格式】输出一个整数,表示111号点到nnn号点的最短距离。【数据范围】原创 2022-03-14 08:23:36 · 213 阅读 · 0 评论 -
【模板题】树与图的深度优先遍历
一、AcWing 846. 树的重心【题目描述】给定一颗树,树中包含nnn个结点(编号1∼n1\sim n1∼n)和n−1n-1n−1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。【输入格式】第一行包含整数nnn,表示树的结点数。接下来n−1n-1n−1行,每行包含两个整数aaa和bbb,表示点aaa和点bbb之间存在一条边。【输出格式】输出一原创 2022-03-14 08:18:15 · 243 阅读 · 0 评论 -
洛谷P1983 车站分级(拓扑排序)
【题目描述】一条单向的铁路线上,依次有编号为1,2,…,n1,2,\dots ,n1,2,…,n的nnn个火车站。每个火车站都有一个级别,最低为111级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站xxx,则始发站、终点站之间所有级别大于等于火车站xxx的都必须停靠。(注意:起始站和终点站自然也算作事先已知需要停靠的站点)例如,下表是555趟车次的运行情况。其中,前444趟车次均满足要求,而第555趟车次由于停靠了333号火车站(222级)却未停靠途经的666号火车站(原创 2022-03-13 08:50:40 · 298 阅读 · 2 评论 -
洛谷P1351 联合权值(图论,数学)
【题目描述】无向连通图G有nnn个点,n−1n-1n−1条边。点从111到nnn依次编号,编号为iii的点的权值为WiW_iWi,每条边的长度均为111。图上两点(u,v)(u,v)(u,v)的距离定义为uuu点到vvv点的最短距离。对于图G上的点对(u,v)(u,v)(u,v),若它们的距离为222,则它们之间会产生Wv×WuW_v \times W_uWv×Wu的联合权值。请问图G上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?【输入格式】第一行包含111个原创 2022-03-11 10:30:03 · 416 阅读 · 0 评论 -
洛谷P1993 小K的农场(差分约束)
【题目描述】小K在MC里面建立很多很多的农场,总共nnn个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得一些含糊的信息(共mmm个),以下列三种形式描述:农场aaa比农场bbb至少多种植了ccc个单位的作物;农场aaa比农场bbb至多多种植了ccc个单位的作物;农场aaa与农场bbb种植的作物数一样多。但是,由于小K的记忆有些偏差,所以他想要知道存不存在一种情况,使得农场的种植作物数量与他记忆中的所有信息吻合。【输入格式】第一行包括两个整数nnn和mmm,分别表示农场数目和原创 2022-03-10 13:40:46 · 141 阅读 · 0 评论 -
洛谷P2296 寻找道路(图论,BFS)
【题目描述】在有向图GGG中,每条边的长度均为111,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件111的情况下使路径最短。注意:图GGG中可能存在重边和自环,题目保证终点没有出边。请你输出符合条件的路径的长度。【输入格式】第一行有两个用一个空格隔开的整数nnn和mmm,表示图有nnn个点和mmm条边。接下来的mmm行每行222个整数x,yx,yx,y,之间用一个空格隔开,表示有一条边从点xxx指向原创 2022-03-10 13:29:14 · 202 阅读 · 0 评论 -
洛谷P1346 电车(双端队列BFS)
【题目描述】在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,每个开关都有一个默认的状态,每辆电车行驶到路口之后,只能从开关所指向的轨道出去,如果电车司机想走另一个轨道,他就必须下车切换开关的状态。为了行驶向目标地点,电车司机不得不经常下车来切换开关,于是,他们想请你写一个程序,计算一辆从路口AAA到路口BBB最少需要下车切换几次开关。【输入格式】原创 2022-03-09 13:05:33 · 236 阅读 · 0 评论 -
洛谷P1330 封锁阳光大学(二分图,搜索)
【题目描述】曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街。河蟹看到欢快的曹,感到不爽。河蟹决定封锁阳光大学,不让曹刷街。阳光大学的校园是一张由nnn个点构成的无向图,nnn个点之间由mmm条道路连接。每只河蟹可以对一个点进行封锁,当某个点被封锁后,与这个点相连的道路就被封锁了,曹就无法在这些道路上刷街了。非常悲剧的一点是,河蟹是一种不和谐的生物,当两只河蟹封锁了相邻的两个点时,他们会发生冲突。询问:最少需要多少只河蟹,可以封锁所有道路并且不发生冲突。【输入格式】第一行两个正原创 2022-03-08 21:57:42 · 217 阅读 · 0 评论 -
【算法题归纳合集】图论-最近公共祖先
一、AcWing 1172. 祖孙询问【题目描述】给定一棵包含nnn个节点的有根无向树,节点编号互不相同,但不一定是1∼n1\sim n1∼n。有mmm个询问,每个询问给出了一对节点的编号xxx和yyy,询问xxx与yyy的祖孙关系。【输入格式】输入第一行包括一个整数nnn表示节点个数;接下来nnn行每行一对整数aaa和bbb,表示aaa和bbb之间有一条无向边。如果bbb是−1-1−1,那么aaa就是树的根;第n+2n+2n+2行是一个整数mmm表示询问个数;接下来mmm行,每行两个不同的原创 2022-02-20 11:47:59 · 433 阅读 · 0 评论 -
AcWing 1471. 牛奶工厂(Floyd传递闭包,思维题)
【题目描述】牛奶生意正红红火火!农夫约翰的牛奶加工厂内有NNN个加工站,编号为1∼N1\sim N1∼N,以及N−1N-1N−1条通道,每条连接某两个加工站。(通道建设很昂贵,所以约翰选择使用了最小数量的通道,使得从每个加工站出发都可以到达所有其他加工站)。为了创新和提升效率,约翰在每条通道上安装了传送带。不幸的是,当他意识到传送带是单向的已经太晚了,现在每条通道只能沿着一个方向通行了!所以现在的情况不再是从每个加工站出发都能够到达其他加工站了。然而,约翰认为事情可能还不算完全失败,只要至少还存原创 2022-02-19 10:17:30 · 482 阅读 · 0 评论 -
【算法题归纳合集】图论-差分约束
差分约束的应用讲解可以跳转至:差分约束算法原理与应用一、AcWing 1169. 糖果【题目描述】幼儿园里有NNN个小朋友,老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,老师需要满足小朋友们的KKK个要求。幼儿园的糖果总是有限的,老师想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋友们所有的要求。【输入格式】输入的第一行是两个整数N,KN,KN原创 2022-02-11 10:47:59 · 528 阅读 · 0 评论 -
差分约束算法原理与应用
一、单源最短路回顾我们在求单源最短路径的时候,设u→vu→vu→v之间有一条有向边(u,v,w)(u,v,w)(u,v,w),由于只有当dis[v]dis[v]dis[v]能减小的时候才会被更新,因此则当vvv被uuu更新后一定满足关系式:dis[v]≤dis[u]+wdis[v]\le dis[u]+wdis[v]≤dis[u]+w。而一个图中有若干条这样的有向边,因此也就等价于有多个这样的不等式,利用最短路算法求解这样的不等式组即为差分约束。二、差分约束的应用1.求不等式组的可行解源点需要满足原创 2022-02-10 21:26:12 · 291 阅读 · 0 评论 -
AcWing 1738. 蹄球(基环树)
【题目描述】为了准备即将到来的蹄球锦标赛,Farmer John正在训练他的NNN头奶牛(方便起见,编号为1∼N1\sim N1∼N)进行传球。这些奶牛在牛棚一侧沿直线排列,第iii号奶牛位于距离牛棚xix_ixi的地方。每头奶牛都在不同的位置上。在训练开始的时候,Farmer John会将若干个球传给不同的奶牛。当第iii号奶牛接到球时,无论是从Farmer John或是从另一头奶牛传来的,她会将球传给最近的奶牛(如果有多头奶牛与她距离相同,她会将球传给这些奶牛中最左边的那头奶牛)。为了使所原创 2022-02-09 20:22:29 · 709 阅读 · 0 评论 -
【算法题归纳合集】图论-SPFA找负环
一、AcWing 904. 虫洞【题目描述】农夫约翰在巡视他的众多农场时,发现了很多令人惊叹的虫洞。虫洞非常奇特,它可以看作是一条单向路径,通过它可以使你回到过去的某个时刻(相对于你进入虫洞之前)。农夫约翰的每个农场中包含NNN片田地,MMM条路径(双向)以及WWW个虫洞。现在农夫约翰希望能够从农场中的某片田地出发,经过一些路径和虫洞回到过去,并在他的出发时刻之前赶到他的出发地。他希望能够看到出发之前的自己。请你判断一下约翰能否做到这一点。下面我们将给你提供约翰拥有的农场数量FFF,以及每个原创 2022-02-08 21:37:25 · 1019 阅读 · 0 评论 -
【算法题归纳合集】图论-最小生成树的扩展应用
一、AcWing 1146. 新的开始(虚拟源点)【题目描述】发展采矿业当然首先得有矿井,小FF花了上次探险获得的千分之一的财富请人在岛上挖了nnn口矿井,但他似乎忘记了考虑矿井供电问题。为了保证电力的供应,小FF想到了两种办法:在矿井iii上建立一个发电站,费用为viv_ivi(发电站的输出功率可以供给任意多个矿井)。将这口矿井iii与另外的已经有电力供应的矿井jjj之间建立电网,费用为pi,jp_{i,j}pi,j。小FF希望你帮他想出一个保证所有矿井电力供应的最小花费方案。【输入原创 2022-02-06 10:34:01 · 1024 阅读 · 0 评论 -
【算法题归纳合集】图论-最小生成树的典型应用
一、AcWing 1140. 最短网络【题目描述】农夫约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。约翰的农场的编号是111,其他农场的编号是2∼n2∼n2∼n。为了使花费最少,他希望用于连接所有的农场的光纤总长度尽可能短。你将得到一份各农场之间连接距离的列表,你必须找出能连接所有农场并使所用光纤最短的方案。【输入格式】第一行包含一个整数nnn,表示农场个数。接下来nnn行,原创 2022-02-05 11:25:55 · 948 阅读 · 0 评论 -
AcWing 1929. 镜子田地(环图)
【题目描述】农夫约翰在屋子外面放了一些旧镜子,他的奶牛们像往常一样调皮地偷走了它们!奶牛们将镜子放置在了一个矩形田地中,该田地可被划分为N×MN×MN×M个方格区域。在每个方格区域中,奶牛在其某对对角之间放置一个双面镜,因此,共有两种放法,一种为/放置(镜子连接方格左下角和右上角),另一种为\放置(镜子连接方格左上角和右下角)。一天晚上,奶牛贝茜将激光发射器带到了该田地中。她站在田地外面,沿着田地的行或列水平或垂直照射光束,使光束反射一定数量的镜子。由于镜子都是沿对角线摆放,因此经反射镜反射的水原创 2022-01-24 22:36:33 · 321 阅读 · 0 评论 -
【算法题归纳合集】图论-Floyd算法及其扩展应用
一、AcWing 1125. 牛的旅行【题目描述】农民John的农场里有很多牧区,有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区不连通。现在,John想在农场里添加一条路径(注意,恰好一条)。一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的两个牧场,每一个牧区都有自己的坐标:图111是有555个牧区的牧场,牧区用*表示,路径用直线表示。图111所示的牧场的直径大约是12.0710612原创 2022-01-12 10:46:25 · 843 阅读 · 0 评论 -
PTA 校选拔 7-14 羽毛球比赛(拓扑排序)
【题目描述】宇航员训练基地要举行羽毛球赛,共有NNN名队员参加比赛,他们的编号分别为1,2,3,…,N1,2,3,\dots,N1,2,3,…,N,宇航员王明是比赛的总裁判,但是由于电脑故障,比赛排名没有了,幸运的是王明保留有各场比赛的输赢情况,其中,(Pi,Pj)(P_i,P_j)(Pi,Pj)表示PiP_iPi队员赢了PjP_jPj队员,现在请你帮王明计算出羽毛球赛的排名。由于排名情况不唯一,编号小的队员排名在前。【输入格式】第一行输入两个整数NNN和MMM,其中N(1≤N≤500)N(1原创 2021-12-19 10:32:45 · 496 阅读 · 0 评论 -
【算法题归纳合集】图论-单源最短路的扩展应用
一、AcWing 1137. 选择最佳线路(虚拟源点)【题目描述】有一天,琪琪想乘坐公交车去拜访她的一位朋友。由于琪琪非常容易晕车,所以她想尽快到达朋友家。现在给定你一张城市交通路线图,上面包含城市的公交站台以及公交线路的具体分布。已知城市中共包含nnn个车站(编号1∼n1\sim n1∼n)以及mmm条公交线路。每条公交线路都是单向的,从一个车站出发直接到达另一个车站,两个车站之间可能存在多条公交线路。琪琪的朋友住在sss号车站附近。琪琪可以在任何车站选择换乘其它公共汽车。请找出琪琪到达原创 2021-11-19 23:20:04 · 544 阅读 · 0 评论 -
【算法题归纳合集】图论-单源最短路的综合应用
一、AcWing 1135. 新年好(最短路+搜索)【题目描述】重庆城里有nnn个车站,mmm条双向公路连接其中的某些车站。每两个车站最多用一条公路连接,从任何一个车站出发都可以经过一条或者多条公路到达其他车站,但不同的路径需要花费的时间可能不同。在一条路径上花费的时间等于路径上所有公路需要的时间之和。佳佳的家在车站111,他有五个亲戚,分别住在车站a,b,c,d,ea,b,c,d,ea,b,c,d,e。过年了,他需要从自己的家出发,拜访每个亲戚(顺序任意),给他们送去节日的祝福。怎样走,才需原创 2021-11-18 15:54:18 · 788 阅读 · 0 评论 -
洛谷P1113 杂务(DP,拓扑排序)
【题目描述】John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更多时间挤出更多的牛奶。当然,有些杂务必须在另一些杂务完成的情况下才能进行。比如:只有将奶牛赶进牛棚才能开始为它清洗乳房,还有在未给奶牛清洗乳房之前不能挤奶。我们把这些工作称为完成本项工作的准备工作。至少有一项杂务不要求有准备工作,这个可以最早着手完成的工作,标记为杂务111。John有需要完成的n原创 2021-11-18 08:55:44 · 536 阅读 · 0 评论 -
【算法题归纳合集】图论-单源最短路的建图方式
前言对于图论的题目,代码重复的现象尤为明显,即模板代码的部分占比特别大。因此很多图论的难点并不在算法代码实现本身,而在于对题目信息的抽象能力与建图能力(因为图论题的题目描述往往都是又臭又长的),因此如何根据题意建出相应的图的能力是十分重要的。一、AcWing 1129. 热浪【题目描述】John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点一共有TTT个城镇,为了方便标号为111到TTT。除了起点和终点外的每个城镇都由双向道路连向至少两个其它的城镇。每条道路有一原创 2021-11-02 17:48:51 · 336 阅读 · 1 评论 -
洛谷P1265 公路修建(Prim)
【题目描述】某国有nnn个城市,它们互相之间没有公路相通,因此交通十分不便。为解决这一“行路难”的问题,政府决定修建公路。修建公路的任务由各城市共同完成。修建工程分若干轮完成。在每一轮中,每个城市选择一个与它最近的城市,申请修建通往该城市的公路。政府负责审批这些申请以决定是否同意修建。政府审批的规则如下:(1)如果两个或以上城市申请修建同一条公路,则让它们共同修建;(2)如果三个或以上的城市申请修建的公路成环。如下图,AAA申请修建公路ABABAB,BBB申请修建公路BCBCBC,CCC申请修建公原创 2021-10-22 15:49:54 · 409 阅读 · 0 评论 -
洛谷P1807 最长路(SPFA,Bellman-Ford)
【题目描述】设GGG为有nnn个顶点的带权有向无环图,GGG中各顶点的编号为111到nnn,请设计算法,计算图GGG中1∼n1\sim n1∼n的最长路径。【输入格式】输入的第一行有两个整数,分别代表图的点数nnn和边数mmm。第222到第(m+1)(m+1)(m+1)行,每行333个整数u,v,wu, v, wu,v,w,代表存在一条从uuu到vvv边权为www的边。【输出格式】输出一行一个整数,代表111到nnn的最长路。若111与nnn不连通,请输出−1-1−1。【数据范围】对于20原创 2021-10-18 20:35:06 · 336 阅读 · 0 评论 -
洛谷P1197 星球大战(并查集)
【题目描述】很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治着整个星系。某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球。这些星球通过特殊的以太隧道互相直接或间接地连接。但好景不长,很快帝国又重新造出了他的超级武器。凭借这超级武器的力量,帝国开始有计划地摧毁反抗军占领的星球。由于星球的不断被摧毁,两个星球之间的通讯通道也开始不可靠起来。现在,反抗军首领交给你一个任务:给出原来两个星球之间的以太隧道连通情况以及帝国打击的星球顺序,以尽量快的速度求出原创 2021-10-14 19:35:34 · 357 阅读 · 0 评论 -
洛谷P4017 最大食物链计数(拓扑排序)
【题目描述】给你一个食物网,你要求出这个食物网中最大食物链的数量。(数据中不会出现环,满足生物学的要求)(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者。)DeliaDeliaDelia非常急,所以你只有111秒的时间。由于这个结果可能过大,你只需要输出总数模上801120028011200280112002的结果。【输入格式】第一行,两个正整数n、mn、mn、m,表示生物种类nnn和吃与被吃的关系数mmm。接下来mmm原创 2021-10-14 12:35:41 · 264 阅读 · 0 评论 -
【模板题】二分图的最大匹配(匈牙利算法)
【题目描述】给定一个二分图,其中左半部包含n1n_1n1个点(编号1∼n11∼n_11∼n1),右半部包含n2n_2n2个点(编号 1∼n21∼n_21∼n2),二分图共包含mmm条边。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。二分图的匹配:给定一个二分图GGG,在GGG的一个子图MMM中,MMM的边集{EEE}中的任意两条边都不依附于同一个顶点,则称MMM是一个匹配。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最原创 2021-10-09 09:19:51 · 169 阅读 · 0 评论 -
【模板题】染色法判定二分图(DFS遍历图)
【题目描述】给定一个n个点m条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。【输入格式】第一行包含两个整数n和m。接下来m行,每行包含两个整数u和v,表示点u和点v之间存在一条边。【输出格式】如果给定图是二分图,则输出Yes,否则输出No。【数据范围】1≤n,m≤1e5【输入样例】4 41 31 42 32 4【输出样例】Yes#include <iostream>#include <cstring>#include &l原创 2021-10-08 19:48:55 · 239 阅读 · 0 评论 -
【模板题】Kruskal算法求最小生成树
【题目描述】给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V,E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n−1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。【输入格式】第一行包含两个整数n和m。接下来m行,每行包含三个整数u,v,w,表示点u和点v之间存在一原创 2021-10-08 17:42:48 · 737 阅读 · 0 评论 -
【模板题】Prim算法求最小生成树
【题目描述】给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V,E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n−1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。【输入格式】第一行包含两个整数n和m。接下来m行,每行包含三个整数u,v,w,表示点u和点v之间存在一原创 2021-10-08 17:00:48 · 967 阅读 · 0 评论 -
【模板题】Floyd求多源汇最短路
【题目描述】给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出impossible。数据保证图中不存在负权回路。【输入格式】第一行包含三个整数n,m,k。接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。【输出格式】共k行,每行输出一个整数,表示询问的结果,若询问两点间不存在原创 2021-10-08 16:55:07 · 185 阅读 · 0 评论 -
【模板题】SPFA(有负权边的单源最短路 / 判断负环)
一、SPFA求带负权边的单源最短路问题【题目描述】给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。【输入格式】第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。【输出格式】输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出impossible。【数据范围】1≤n,m≤1e5图中原创 2021-10-08 13:02:49 · 341 阅读 · 0 评论