随笔分类 -  算法基础:最短路径

摘要:题目链接:Here ABC水题, D. Not Divisible 看了题解才想到,可以用 Sieve of Eratosthenes,因为 Ai 最大才 106 但有注意的点 1 1 5 2 2 2 3 3 5 2 2 2 4 4 5 1 1 1 1 2 重复出现的数字 简单的 阅读全文
posted @ 2021-08-17 15:10 RioTian 阅读(75) 评论(0) 推荐(0) 编辑
摘要:定义 (还记得这些定义吗?如果对 图的概念 和 存储 不了解请点击链接) 路径 最短路 有向图中的最短路、无向图中的最短路 单源最短路、每对结点之间的最短路 性质 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的结点。 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的边。 对于边 阅读全文
posted @ 2021-04-21 19:20 RioTian 阅读(994) 评论(1) 推荐(1) 编辑
摘要:B题 Telephone Lines https://ac.nowcoder.com/acm/contest/1055/B 中文题面:https://www.luogu.com.cn/problem/P1948 分层图最短路 #include <bits/stdc++.h> using namesp 阅读全文
posted @ 2020-08-05 15:51 RioTian 阅读(232) 评论(0) 推荐(1) 编辑
摘要:一、内容 You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride your bike to school every day, you now g 阅读全文
posted @ 2020-07-26 10:57 RioTian 阅读(122) 评论(0) 推荐(1) 编辑
摘要:在 OI 中,想要对图进行操作,就需要先学习图的存储方式。 约定 在本文中,用 n 代指图的点数,用 m 代指图的边数,用 d+(u) 代指点 u 的出度,即以 u 为出发点的边数。 直接存边 方法 使用一个数组来存边,数组中的每个元素都包含一条边的起点与终 阅读全文
posted @ 2020-07-25 19:18 RioTian 阅读(329) 评论(0) 推荐(2) 编辑
摘要:POJ 3259 http://poj.org/problem?id=3259 题意: 农夫 FJ 有 N 块田地【编号 1...n】 (1<=N<=500) 田地间有 M 条路径 【双向】(1<= M ⇐ 2500) 同时有 W 个孔洞,可以回到以前的一个时间点【单向】(1<= W ⇐200) 问 阅读全文
posted @ 2020-07-25 17:29 RioTian 阅读(343) 评论(0) 推荐(1) 编辑
摘要:Candies POJ - 3159 题意: 给N个小朋友分糖, 给出M组约束a, b, c表示b的糖果不能比a多c个以上, 求1号和N号的最大糖果差异数 题解: 非常显然的线性查分约束问题 对于a, b, c表示b的糖果不能比a多c个以上 , 即cnt[a]+c >= cnt[b], 可以理解为a 阅读全文
posted @ 2020-05-22 19:43 RioTian 阅读(390) 评论(0) 推荐(0) 编辑
摘要:POJ :1511 http://poj.org/problem?id=1511 ##思路 求1号点到其他点的最短路 + 其他点到1号点的最短。 结果用long long。 用快读可以加快时间 代码 spfa 890ms #ifdef ONLINE_JUDGE #pragma warning (di 阅读全文
posted @ 2020-05-20 21:19 RioTian 阅读(312) 评论(0) 推荐(0) 编辑
摘要:简介 Floyd算法算是最简单的算法,没有之一。 其状态转移方程如下map[i , j] =min{ map[i , k] + map[k , j] , map[i , j] }; map[i , j]表示 i 到 j 的最短距离,K是穷举 i , j 的断点,map[n , n]初值应该为0,或者 阅读全文
posted @ 2020-05-19 17:39 RioTian 阅读(716) 评论(0) 推荐(0) 编辑
摘要:POJ 2240 http://poj.org/problem?id=2240 题意:判断是否存在使得汇率增多的环 【任意一个点的汇率增多都可以】 Floyd 简单变形 w[i][j]=max(w[i][j],w[i][k]w[k][j]) #ifndef ONLINE_JUDGE 阅读全文
posted @ 2020-05-19 17:30 RioTian 阅读(303) 评论(0) 推荐(0) 编辑
摘要:POJ 3660 http://poj.org/problem?id=3660 思路: 传递闭包 输入A > B,那么我们可以建立一套A —>B 的边。 然后求出传递闭包。 判断一个人是否知道排名,如果知道大于它的人数+小于它的人数 == n-1那么就可以知道排名了。 大于它的人数: g[u][v] 阅读全文
posted @ 2020-05-19 15:37 RioTian 阅读(104) 评论(1) 推荐(0) 编辑
摘要:POJ - 1860 一种货币就是一个点 一个“兑换点”就是图上两种货币之间的一个兑换方式,是双边,但A到B的汇率和手续费可能与B到A的汇率和手续费不同。 唯一值得注意的是权值,当拥有货币A的数量为V时,A到A的权值为K,即没有兑换 而A到B的权值为(V-Cab)*Rab 本题是“求最大路径”,之所 阅读全文
posted @ 2020-05-14 15:59 RioTian 阅读(154) 评论(0) 推荐(0) 编辑
摘要:Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 43861 Accepted: 14902 Description Bessie is out in the field and wan 阅读全文
posted @ 2020-05-12 22:37 RioTian 阅读(456) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 BFS解法 题目 给三个数字 s n m s=n+m s在1到100之间 就是个倒水问题可以从第一个倒向第二个 类似的一共可以有六中到发 现在要求最少经过多少步就能平分那么多水 首先剪枝是 如果s 阅读全文
posted @ 2020-05-09 09:43 RioTian 阅读(231) 评论(0) 推荐(1) 编辑
摘要:SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman ford 算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。 算法过程 设立一个队列用来保存待优化的顶点,优化时每次取出队首顶点 阅读全文
posted @ 2020-05-03 13:01 RioTian 阅读(358) 评论(0) 推荐(0) 编辑
摘要:Dijkstra 算法是处理单源最短路径的有效算法,但它对存在负权回路的图就会失效。这时候,就需要使用其他的算法来应对这个问题,Bellman Ford(中文名:贝尔曼 福特)算法就是其中一个。 Bellman Ford 算法不仅可以求出最短路径,也可以检测负权回路的问题。该算法由美国数学家理查德• 阅读全文
posted @ 2020-03-30 12:04 RioTian 阅读(506) 评论(0) 推荐(1) 编辑
摘要:Dijkstra 算法(中文名:迪杰斯特拉算法)是由荷兰计算机科学家 Edsger Wybe Dijkstra 提出。该算法常用于路由算法或者作为其他图算法的一个子模块。举例来说,如果图中的顶点表示城市,而边上的权重表示城市间开车行经的距离,该算法可以用来找到两个城市之间的最短路径。 算法过程 我们 阅读全文
posted @ 2020-03-30 11:54 RioTian 阅读(1044) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示