【模板】Floyd求最短路 给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定k个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出“impossible”。 数据保证图中不存在负权回路。 输入格式第一行包含三个整数n,m,k 接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 接下来k行,每行包含两个整数x,y,表示询问点 2021-03-05 模板 #最短路 | Floyd
【模板】spfa判断负环 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你判断图中是否存在负权回路。 题解 输入格式第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式如果图中存在负权回路,则输出“Yes”,否则输出“No”。 数据范围1≤n≤2000,1≤m≤10000,图中涉及边长绝对值均不超过10000。 输入样例:123 2021-03-05 模板 #spfa | 负环判定
【模板】spfa求最短路 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。 数据保证不存在负权回路。 输入格式第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式输出一个整数,表示1号点到n号点的最短距离。 如果路径不存在,则输出”imposs 2021-03-05 模板 #最短路 | spfa
【模板】有边数限制的最短路 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。 注意:图中可能 存在负权回路 。 输入格式第一行包含三个整数n,m,k。 接下来m行,每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式输出一个整数,表示从1号点到n号点的最多经过k条 2021-03-05 模板 #最短路 | Bellman-Ford
【模板】Dijkstra求最短路II 给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。 输入格式第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式输出一个整数,表示1号点到n号点的最短距离。 如果路径不存在,则输出-1。 数据范围1 ≤ n, m ≤ 1.5×10^5 2021-02-22 模板 #最短路 | dijkstra
【模板】Dijkstra求最短路I 给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。 输入格式第一行包含整数n和m。 接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。 输出格式输出一个整数,表示1号点到n号点的最短距离。 如果路径不存在,则输出-1。 数据范围1≤n≤500,1≤m≤105,图中涉及 2021-02-19 模板 #最短路 | dijkstra
【模板】有向图的拓扑排序 给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。 若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。 输入格式第一行包含两个整数n和m 接下来m行,每行包含两个整数x和y,表示存在一条从点x到点y的有向边(x, y)。 输出格式共一行,如 2021-02-19 模板 #拓扑排序 | bfs
【模板】图中点的层次 给定一个n个点m条边的有向图,图中可能存在重边和自环。 所有边的长度都是1,点的编号为1~n。 请你求出1号点到n号点的最短距离,如果从1号点无法走到n号点,输出-1。 输入格式第一行包含两个整数n和m。 接下来m行,每行包含两个整数a和b,表示存在一条从a走到b的长度为1的边。 输出格式输出一个整数,表示1号点到n号点的最短距离。 数据范围1 ≤ n, m ≤ 10^5 输入样例:123456 2021-02-18 模板 #bfs
【模板】树的重心 给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 输入格式第一行包含整数n,表示树的结点数。 接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。 输出格式输出一个整数m,表示将重 2021-02-17 模板 #树形DP | dfs
【模板】走迷宫 给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。 最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。 请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。 数据保证(1, 1)处和(n, m)处的数字为0,且一定至少存在一条通路。 输入格式第一行包含两个整数n和m。 接下 2021-02-17 模板 #bfs