摘要: Prim:每次都选一个距离集合最小的点加入集合中,最终形成的就是最小生成树(与Dijkstra最大的区别,其余代码和Dijkstra没啥不同) 因为和Dijikstra思想差不多,所以也可以用堆优化,但是基本都不用,因为有更好的Kruskal 1 #include <iostream> 2 #inc 阅读全文
posted @ 2021-10-22 10:15 Modest-Hamilton 阅读(46) 评论(0) 推荐(0)
摘要: 【题目描述】 给定一个n个点 m条边的有向图,图中可能存在重边和自环,边权可能为负数。 再给定k个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible。 数据保证图中不存在负权回路。 【输入格式】 第一行包含三个整数 n,m,k 阅读全文
posted @ 2021-10-21 17:08 Modest-Hamilton 阅读(26) 评论(0) 推荐(0)
摘要: 【题目描述】 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你判断图中是否存在负权回路。 【输入格式】 第一行包含整数 n 和 m。 接下来 mm 行每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。 【输出格式】 如果图中存在 阅读全文
posted @ 2021-10-21 16:37 Modest-Hamilton 阅读(31) 评论(0) 推荐(0)
摘要: 【题目描述】 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 impossible。 数据保证不存在负权回路。 输入格式 第一行包含整数 n 和 m。 接下来 mm 行每行包含三个 阅读全文
posted @ 2021-10-21 16:20 Modest-Hamilton 阅读(33) 评论(0) 推荐(0)
摘要: 【题目描述】 给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出 impossible。 注意:图中可能 存在负权回路 。 【输入格式】 第一行包含三个整数 n,m 阅读全文
posted @ 2021-10-21 15:06 Modest-Hamilton 阅读(104) 评论(0) 推荐(0)
摘要: 1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 const int N = 509; 5 int g[N][N],dist[N],st[N]; 6 int n,m; 7 8 int dijkstra() 9 { 阅读全文
posted @ 2021-10-20 23:23 Modest-Hamilton 阅读(69) 评论(0) 推荐(0)
摘要: 【题目描述】 给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。 【输入格式】 第一行包含整 阅读全文
posted @ 2021-10-20 17:03 Modest-Hamilton 阅读(141) 评论(0) 推荐(0)
摘要: 【题目描述】 在一个 3×3 的网格中,1∼8 这 8 个数字和一个 x 恰好不重不漏地分布在这 3×3 的网格中。 例如: 1 2 3 x 4 6 7 5 8 在游戏过程中,可以把 x 与其上、下、左、右四个方向之一的数字交换(如果存在)。 我们的目的是通过交换,使得网格变为如下排列(称为正确排列 阅读全文
posted @ 2021-10-20 15:58 Modest-Hamilton 阅读(49) 评论(0) 推荐(0)
摘要: 【题目描述】 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形。 A 吃 B,B 吃 C,C 吃 A。 现有 N 个动物,以 1∼N 编号。 每个动物都是 A,B,C 中的一种,但是我们并不知道它到底是哪一种。 有人用两种说法对这 N 个动物所构成的食物链关系进行描述: 第一种说 阅读全文
posted @ 2021-10-20 10:34 Modest-Hamilton 阅读(71) 评论(0) 推荐(0)
摘要: 【题目描述】 一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 aa 和 bb 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 aa 和 bb 的两个数是否在同一个集合中; 阅读全文
posted @ 2021-10-19 22:31 Modest-Hamilton 阅读(30) 评论(0) 推荐(0)