![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
小王子y
互关啊!!
展开
-
最优贸易(SPFA)
C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道路在统计条数时也计为 1 条。C 国幅员辽阔,各地的资源分布情况各不相同,这就导致了同一种商品在不同城市的价格不一定相同。但是,同一种商品在同一个城市的买入价和卖出价始终是相同的。商人阿龙来到 C 国旅游。当他得知“同一种商品在不同城市的价格可能会不同”这一信息之后,便决定在旅游的同时,利用商品在原创 2021-05-13 19:33:05 · 188 阅读 · 0 评论 -
牛的旅行( 最短路Floyd )
农民John的农场里有很多牧区,有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区不连通。现在,John想在农场里添加一条路径(注意,恰好一条)。一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的两个牧场,每一个牧区都有自己的坐标:图 1 是有 5 个牧区的牧场,牧区用“*”表示,路径用直线表示。图 1 所示的牧场的直径大约是 12.07106, 最远的两个牧区是 A 和 E,它们之间的最短路径原创 2021-05-13 17:29:03 · 778 阅读 · 2 评论 -
距离(Tarjan算法)
给出 n 个点的一棵树,多次询问两点之间的最短距离。注意:边是无向的。所有节点的编号是 1,2,…,n。输入格式第一行为两个整数 n 和 m。n 表示点数,m 表示询问次数;下来 n−1 行,每行三个整数 x,y,k,表示点 x 和点 y 之间存在一条边长度为 k;再接下来 m 行,每行两个整数 x,y,表示询问点 x 到点 y 的最短距离。树中结点编号从 1 到 n。输出格式共 m 行,对于每次询问,输出一行询问结果。数据范围2≤n≤104,1≤m≤2×104,0&l原创 2021-05-11 11:09:47 · 215 阅读 · 0 评论 -
祖孙询问(LCA最近公共祖先)
给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n。有 mm 个询问,每个询问给出了一对节点的编号 x 和 y,询问 x与 y 的祖孙关系。输入格式输入第一行包括一个整数 表示节点个数;接下来 n 行每行一对整数 a 和 b,表示 a 和 b 之间有一条无向边。如果 bb 是 −1,那么 a 就是树的根;第 n+2 行是一个整数 m 表示询问个数;接下来 m 行,每行两个不同的正整数 x 和 y,表示一个询问。输出格式对于每一个询问,若 x 是 y 的祖先则输原创 2021-05-10 01:04:29 · 216 阅读 · 0 评论 -
关押罪犯(染色法判断二分图,二分)
S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 c 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 c 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 S 城 Z 市长那里。公务繁忙的 Z 市长只会去看列原创 2021-04-27 21:26:24 · 131 阅读 · 0 评论 -
选择最佳线路( 最短路)
有一天,琪琪想乘坐公交车去拜访她的一位朋友。由于琪琪非常容易晕车,所以她想尽快到达朋友家。现在给定你一张城市交通路线图,上面包含城市的公交站台以及公交线路的具体分布。已知城市中共包含 n 个车站(编号1~n)以及 m 条公交线路。每条公交线路都是 单向的,从一个车站出发直接到达另一个车站,两个车站之间可能存在多条公交线路。琪琪的朋友住在 s 号车站附近。琪琪可以在任何车站选择换乘其它公共汽车。请找出琪琪到达她的朋友家(附近的公交车站)需要花费的最少时间。输入格式输入包含多组测试数据。每原创 2021-03-19 00:34:00 · 25515 阅读 · 0 评论 -
最优乘车(最短路附思路)
H城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到H城旅游,他很想去S公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达S公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士, 这样换乘几次后到达S公园。现在用整数1,2,…N 给H城的所有的巴士站编号,约定这名旅客所在饭店的巴士站编号为1,S公园巴士站原创 2021-03-16 21:10:17 · 314 阅读 · 0 评论 -
最小花费( 最短路Dijkstra或SPFA)
在 n 个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问 A 最少需要多少钱使得转账后 B 收到 100 元。输入格式第一行输入两个正整数 n,m,分别表示总人数和可以互相转账的人的对数。以下 m 行每行输入三个正整数 x,y,z,表示标号为 x 的人和标号为 y 的人之间互相转账需要扣除 z% 的手续费 ( z<100 )。最后一行输入两个正整数 A,B。数据保证 A 与 B 之间可以直接或间原创 2021-03-16 19:50:52 · 326 阅读 · 1 评论 -
香甜的黄油( 多重SPFA)
农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在那)。数据原创 2021-03-15 00:20:06 · 194 阅读 · 0 评论 -
信使( 单源最短路)
战争时期,前线有 n 个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有 n 个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他 k 个哨所有通信联系的话,这个哨所内至少原创 2021-03-14 23:56:26 · 111 阅读 · 0 评论 -
2020天梯赛 L2-4 网红点打卡攻略(巨坑,哈密顿回路问题)
一个旅游景点,如果被带火了的话,就被称为“网红点”。大家来网红点游玩,俗称“打卡”。在各个网红点打卡的快(省)乐(钱)方法称为“攻略”。你的任务就是从一大堆攻略中,找出那个能在每个网红点打卡仅一次、并且路上花费最少的攻略。输入格式:首先第一行给出两个正整数:网红点的个数 N(1<N≤200)和网红点之间通路的条数 M。随后 M 行,每行给出有通路的两个网红点、以及这条路上的旅行花费(为正整数),格式为“网红点1 网红点2 费用”,其中网红点从 1 到 N 编号;同时也给出你家到某些网红点的花费,格原创 2020-11-29 21:36:17 · 2004 阅读 · 4 评论 -
PAT甲级真题1122 哈密顿回路(详解)
哈密顿回路问题是找到一个包含图中每个顶点的简单回路。这样的回路称为“哈密顿回路”。在本题中,你需要做的是判断给定路径是否为哈密顿回路。输入格式第一行包含一个整数 NN 表示顶点数,一个整数 MM 表示给定无向图中的边数。接下来 MM 行,每行包含两个整数 a,ba,b,表示点 aa 和 bb 之间存在一条边。所有顶点编号从 11 到 NN。再一行给出整数 KK,表示询问次数。接下来 KK 行,每行包含一个询问,格式如下:nn V1V1 V2V2 … VnVnnn 表示给定路径经过的点的数原创 2020-11-10 19:50:40 · 621 阅读 · 0 评论