给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。 输入格式 第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式 输出一个整数,表示1号 ...
分类:
其他好文 时间:
2019-10-25 10:11:31
阅读次数:
78
给你n个叶子点互相的最短路长度,构造若干个点的最小生成树 这里引入的: 一个点到树的最短距离 ...
分类:
其他好文 时间:
2019-10-22 20:10:25
阅读次数:
92
BFS : 1.普通队列:维护 (1)两段性(队列中至多有x和x+1两种距离) (2)单调性 首次入队即为最短距离(所以通常要判重) 2.优先队列: 可能入队出队多次,通常首次 出 队即为最短距离(无需判重) 一.模型 1.flood fill(洪水填充,即连通块模型) 2.最短路(通常在网格图上, ...
分类:
编程语言 时间:
2019-10-21 23:26:46
阅读次数:
177
题意: 一道很裸的LCA题 以一个点建树,两点间最短的距离可以转化为求两近公共祖先,最短距离,depth[x]-depth[l]+depth[y]-depth[l] 在dfs求得每个点到顶点距离 ...
分类:
其他好文 时间:
2019-10-16 19:58:32
阅读次数:
81
题目链接:https://vjudge.net/problem/POJ-3608 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 #def ...
分类:
其他好文 时间:
2019-10-06 11:17:13
阅读次数:
58
题目描述 无向连通图 GG 有 nn 个点,n-1n?1 条边。点从 11 到 nn 依次编号,编号为 ii 的点的权值为 W_iWi?,每条边的长度均为 11。图上两点 (u, v)(u,v) 的距离定义为 uu 点到 vv 点的最短距离。对于图 GG 上的点对 (u, v)(u,v),若它们的距 ...
分类:
其他好文 时间:
2019-10-05 22:04:29
阅读次数:
66
Floyd算法: 复杂度O(n^3) 首先这个算法使用暴力dp来写的,很容易就会TLE。但是这是一个多源最短路算法,可以求出来任意两点之间的最短距离 示例代码: 1 #include <cstdio> 2 #include <iostream> 3 #define INF 0x3f3f3f3f 4 ...
分类:
其他好文 时间:
2019-10-05 10:26:58
阅读次数:
74
想必大家都会求最短路吧,这里就不再多说了;我看有很多人在一顿套模板,什么dijkstra,SPFA等等,这是可以的;但身为OIer,思路要开阔对不对?首先我们注意到,我们可以利用bfs来求每个点的深度。因为在所有边边权为1的时候,点的深度就是点的最短距离;这样在写法上便少了队列优化SPFA中退栈时还 ...
分类:
其他好文 时间:
2019-10-04 21:23:16
阅读次数:
91
最短路问题:给你一张图(n个点,m条边),每条边有一个距离。问从一个点到另一个点的最短距离。 最短路主要关注两种算法: Dijkstra O(n^2) 和 SPFA O(n*m) (都是最坏复杂度) (其实SPFA几乎无法达到最坏复杂度) Dijkstra: 适用范围(局限性):不存在负权边 思路: ...
分类:
其他好文 时间:
2019-09-30 16:48:38
阅读次数:
72
题意:求 1 - n 的次最短路 分析: 先来谈谈Dijkstra的优化。对于每次寻找到当前为访问过的点中距离最短的那一个,运用优先队列进行优化,避免全部扫描,每更新一个点的最短距离就加入优先队列。有人会问,一个点如果已经处理完成了,那它还留在队列中怎么办?我们放入队列时将一个点那时的顶点编号和最短 ...
分类:
其他好文 时间:
2019-09-24 07:58:30
阅读次数:
70