随笔分类 -  ACM-图论-最短路

摘要:E - Swap Places 题意 一个简单无向图,每一个点为黑白色的其中一种。 有2个人,x 在点 1,y 在点 n。 在每一步中,每个人都同时向相邻点移动,要求 2 人移动到的格子颜色不能相通。 问最少移动多少步可以使得 x 在点 n,y 在点 1。 数据规模为点数最多为 2000,边数最多为 阅读全文
posted @ 2023-02-20 21:04 qrfkickit 阅读(53) 评论(0) 推荐(0)
摘要:"题目链接" 题意: 给出一个无向图,类似三角形的样子,然后给出边的权值,问找一条从第一个点到最后一个点的路径,要求每一条边只能走一次,并且权值和最大,点可以重复走。 思路: 首先观察这个图可以发现,所有的点的度数都是偶数。然后由每条边只能走一次知道,这个是和欧拉路相关的,是欧拉道路,不是欧拉回路, 阅读全文
posted @ 2019-05-20 19:54 qrfkickit 阅读(271) 评论(0) 推荐(0)
摘要:题意: 一个完全图,有n个点,其中m条边是权值为a的无向边,其它是权值为b的无向边,问从1到n的最短路。 思路: 首先判断1和n被哪种边连通。 如果是被a连通,那么就需要全部走b的边到达n,选择最小的; 被b连通,需要走全部为a的边到达n,选择最小的。 第二种情况,用输入的边跑dijkstra; 但 阅读全文
posted @ 2018-05-07 13:33 qrfkickit 阅读(213) 评论(0) 推荐(0)
摘要:题意: 一个人要送pizza到一些地方,一个地方可以进过两次,这样经过中转的时间可能会更短。 问送完pizza会到原点的最少时间。 思路: 状压dp + Floyd? 经典的tsp问题,不过并没有想到用Floyd求最短距离。 我的做法是,更新一个状态时,更新两次,第一次更新最新的点,第二次更新经过中 阅读全文
posted @ 2018-04-17 00:15 qrfkickit 阅读(141) 评论(0) 推荐(0)
摘要:题意: 有两种出行方式,一种是经济舱,一种是商务舱,商务舱比经济舱更加便捷。 一个人出行,想尽快达到目的地,但是他的钱不够,因此只能坐经济舱,但是幸运的是他有一张商务舱的票,意味着他可以选择坐一次商务舱,或者不坐(如果这样更省时间)。 给出地点数,起点,终点以及若干经济舱的线路和若干商务舱的线路,要 阅读全文
posted @ 2018-04-12 17:47 qrfkickit 阅读(282) 评论(0) 推荐(0)
摘要:题意: 一个人从公司回家,他可以从A走到B如果从存在从B出发到家的一条路径的长度小于任何一条从A出发到家的路径的长度。 问这样的路径有多少条。 思路: 题意并不好理解,存在从B出发到家的一条路径的长度小于任何一条从A出发到家的路径的长度,从这个条件可以推出只要满足B到家的最短路小于从A到家的最短路, 阅读全文
posted @ 2018-04-12 17:46 qrfkickit 阅读(239) 评论(0) 推荐(0)
摘要:题意: 给出一个无向图,定义这个无向图的花费是 其中path(i,j),是i到j的最短路。 去掉其中一条边之后,花费为c’,问c’ – c的最大值,输出c和c’。 思路: 枚举每条边,每次把这条边去掉,然后以每个点为起点,跑一次Dijkstra,再计算总花费。 这样的复杂度为O(mn^2log(n) 阅读全文
posted @ 2018-04-12 17:45 qrfkickit 阅读(264) 评论(0) 推荐(0)
摘要:题意: 一群动物想从动物园逃离,从一个图的左上角出发,只有到达右下角才能彻底逃离。 动物园的管理者为了防止他们逃跑,安排了若干人在路上防守。 现在问最少需要花多少人能够封锁动物逃跑的路线。 思路: 简单画一画知道,就是找一个边的集合把整个图分成两个部分,且要求这些边的权值最小,这是著名的最小割问题( 阅读全文
posted @ 2018-04-12 17:42 qrfkickit 阅读(289) 评论(0) 推荐(0)
摘要:题意: 求从1到n的次短路。 思路: 到某个点v的次短路,要么是从其它点u的最短路加上从u到v的边;要么是从其它点u到的次短路加上从u到v的边。 所以在更新的同时,最短路与次短路都要保存,都要更新。 坑: 首先,小根堆是 > 符号 (吐血 其次,d1[1]与d2[1]不能都初始化为0,这样会有错 比 阅读全文
posted @ 2017-12-12 20:35 qrfkickit 阅读(144) 评论(0) 推荐(0)