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

摘要:次元传送门:洛谷P1073 思路 一开始看题目嗅出了强连通分量的气息 但是嫌长没打 听机房做过的dalao说可以用分层图 从来没用过 就参考题解了解一下 因为每个城市可以走好几次 所以说我们可以在图上随意走动 所以第一层图就建一个边权为0的图 随意走动不影响 考虑在某个点买入水晶球 建立一条有向边到 阅读全文
posted @ 2018-11-01 15:02 Nanchtiy 阅读(205) 评论(0) 推荐(0)
摘要:题目来源:洛谷P3953 思路 先用SPFA求一遍最短路 在求最短路的同时可以把所有点到终点的最短路求出来 dis数组 注意要反向SPFA 因为从起点开始可能会走到一些奇怪的路上导致时间负责度增加 我们定一个f[u][k]数组为从当前节点u还剩时间k到达终点的方案 原来从u走到终点的最短路径消耗时间 阅读全文
posted @ 2018-10-29 16:49 Nanchtiy 阅读(207) 评论(0) 推荐(0)
摘要:题目来源:洛谷P2296 思路 一开始看还以为是一道水题 虽然本来就挺水的 本道题的难点在于如何判断是否路径上的点都会直接或者间接连着终点 我们需要在一开始多建一个反向图 然后从终点DFS回去 把路径上的点标记 DFS完之后遍历所有的点 如果当前点没有被标记 说明其不会直接或者间接连着终点 那么我们 阅读全文
posted @ 2018-10-26 21:33 Nanchtiy 阅读(176) 评论(0) 推荐(0)
摘要:洛谷P3627:https://www.luogu.org/problemnew/show/P3627 思路 由于有强连通分量 所以我们可以想到先把整个图缩点 缩点完之后再建一次图 把点权改为边权 并把边权转为负数 即可用SPFA求最短路间接求最长路了 最后我们查询所有的酒吧 跳出最大的ans即可 阅读全文
posted @ 2018-09-26 21:46 Nanchtiy 阅读(136) 评论(0) 推荐(0)
摘要:洛谷P2914:https://www.luogu.org/problemnew/show/P2914 哇 这题目在暑假培训的时候考到 当时用Floyed会T掉 看楼下都是用Dijkstra 难道没有人用 优雅的SPFA 吗? 思路 用前向星构建整个图 注意每一条边都不能超过len(也就是题目中的m 阅读全文
posted @ 2018-07-11 21:13 Nanchtiy 阅读(187) 评论(0) 推荐(0)
摘要:最短路径算法 Floyed PS:能求带负边图,但不能带负权回路 可以求出任意两点之间的最短路径 主代码: for(k=1;k include define maxn 9999999 using namespace std; int f[101][101]; int n,m,x,y,s; int p 阅读全文
posted @ 2018-07-08 11:27 Nanchtiy 阅读(149) 评论(0) 推荐(0)