这题非常好。。看似很简单其实比较复杂,交了一堆假算法全wa了。。 看题解也好久才弄明白 /* 给定一张有向图,确定一个点T,问有多少T0,满足所有T0->T的路径,都经过边(T0,T) 建立反图,T变为起点,求所有T0,满足T->T0所有路径都经过(T,T0) 首先确定用bfs,我们从每个和T连边T ...
分类:
其他好文 时间:
2020-06-14 14:24:22
阅读次数:
81
#include<bits/stdc++.h> #define ls rt<<1 #define rs rt<<1|1 using namespace std; typedef long long ll; const int p=1e8+7; int ans1; int ans2; int ans3 ...
分类:
其他好文 时间:
2020-06-14 12:57:25
阅读次数:
164
一、本章学习小结 本章学习了图这一复杂的非线性数据结构,图包括有向图和无向图,有向图中又包含始点和终点,弧尾和弧头的概念。两者的本质区别应该是有无序。重点学习了DFS算法和BFS算法实现图的遍历,理解了迪杰斯特拉算法的逻辑思想。 1、图的基本术语(顶点数目为n,边数目为e) 子图、稀疏图和稠密图、权 ...
分类:
其他好文 时间:
2020-06-14 12:51:36
阅读次数:
76
#include<bits/stdc++.h> #define ls rt<<1 #define rs rt<<1|1 using namespace std; typedef long long ll; const int p=1e8+7; vector<int>v[1001000],ans; i ...
分类:
其他好文 时间:
2020-06-14 12:35:49
阅读次数:
64
import java.util.*;/** * 图的广度优先遍历 */public class BreadthFirst { public static void bfs(Node node) { if (node == null) { return; } Queue<Node> queue = ...
分类:
其他好文 时间:
2020-06-14 11:20:26
阅读次数:
70
图的遍历是指访问图中的每一个顶点,且只访问一次。最经典的遍历图的方法就是深度优先遍历和广度优先遍历,这两种遍历方法都会产生一个生成树。我们用程序来实现这两种遍历算法的时候,一定要认真分析它们的算法思想以及具体细节,因为遍历图的顶点,每个顶点只能访问一次,所以需要专门设置一个访问标记数组用于标记顶点是 ...
分类:
其他好文 时间:
2020-06-14 01:16:13
阅读次数:
82
第六章学习的主要内容如下: 这是课后习题的一道题: 1 void DFS_AM(AMGraph G, int v) 2 { //图G为邻接矩阵类型 3 cout << v << " "; //访问第v个顶点 4 visited[v] = true; 5 for(w=G.vexnum-1; w>=0; ...
分类:
其他好文 时间:
2020-06-13 17:45:56
阅读次数:
77
package LeetCode_40 /** * 40. Combination Sum II * https://leetcode.com/problems/combination-sum-ii/description/ * * Given a collection of candidate n ...
分类:
其他好文 时间:
2020-06-13 15:59:33
阅读次数:
59
Odd Selection Subsequence Hate Game On Leaves Guess The Maximums Tree Shuffling A、Odd Selection 题意: $n$个数选$x$个数能不能使它们的和是奇数。 题解: 按奇偶分一波情况就行。 AC代码: 1 #i ...
分类:
其他好文 时间:
2020-06-13 14:33:52
阅读次数:
74
题目描述: 给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 DFS:递归,和100题相同的树类似,不过要注意是左右子树进行比较 //C //注意这个函数声明 bool isMirroTree(struct TreeNode* p, struct Tr ...
分类:
其他好文 时间:
2020-06-13 11:25:28
阅读次数:
56