随笔分类 - 链式前向星
链式前向星
摘要:## . 图中点的层次 一、题目描述 给定一个 个点 条边的有向图,图中可能存在重边和自环。 所有边的长度都是 ,点的编号为 。 请你求出 号点到 号点的最短距离,如果从 号点无法走到 号点,输出 。
阅读全文
摘要:## . 树的重心 一、题目描述 给定一颗树,树中包含 个结点(编号 )和 条无向边。 请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。 重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小
阅读全文
摘要:题目传送门 一、思路分析 1、不停的接收结点关系,创建有向图,A->B有边表示 A<B 2、每进入一个结点关系后,判断现在的有向图是否有环,有环就是冲突,提示并退出。判断是否有环可以用拓扑排序, 判断方法是:只要入队(或者出队)的次数不等于节点的个数,就说明有环,有环就是存在矛盾的。 3、在无环的情
阅读全文
摘要:题目传送门 一、二分图着色原理 二、dfs深度优先遍历解法 #include <bits/stdc++.h> using namespace std; //dfs代码简短一些,注意第29行。 const int N = 1e4 + 10; //题目中说结点数最大10^4=1e4 const int
阅读全文
摘要:题目传送门 一、题意分析 二、bfs解法 1、链式前向星 #include <bits/stdc++.h> using namespace std; const int N = 10010; //10000条边 queue<int> q; bool st[N]; //走过了没 int n; //n个
阅读全文
摘要:题目传送门 一、解题思路 1、用拓扑排序干掉非环结点 2、用或者找出最小环的长度 二、拓扑排序+dfs 解法 1、vector邻接表实现 #include <bits/stdc++.h> using namespace std; /** 思路:其实就是求最小环。每个点的出度都是1
阅读全文
摘要:一、邻接矩阵 适用: 稠密图,就是说点数的平方与边数接近的情况,换句话说就是边特别多。 不适用: 稀疏图,就是点数的平方与边数差的特别多,边数少,但点数多,就不行了,因为空间占用太大了。 实现代码 #include <bits/stdc++.h> using namespace std; const
阅读全文