漫画:图的 “最短路径” 问题 1.当图为无权图时,可以用广度遍历算法bfs获得相隔层次最少的路径。 先加入一个顶点,再while循环,循环中先出一个,再判断是否出的该点是否访问过。若访问过,则continue。continue语句的作度用是跳过循环本中剩余的语句而强行执行下一次循环。 (一个疑问, ...
分类:
编程语言 时间:
2020-06-15 17:49:16
阅读次数:
53
目前只尝试了BFS,不会超时。 1 #include<iostream> 2 #include<queue> 3 using namespace std; 4 5 int line[200000]={0};//number line ,这里选择最大长度的2倍 6 int N,K; 7 queue<i ...
分类:
其他好文 时间:
2020-06-15 09:41:22
阅读次数:
52
1,学习内容小结: 图:(1)存储结构: 邻接矩阵 :适用于稀疏图,顶点较多 & 邻接表 :适用于稠密图,顶点较少或无需记录权值 (2)遍历:深度优先搜索(DFS):类似先序遍历 广度优先搜索(BFS) :类似层次遍历 (3)应用:<1>最小生成树(不是唯一的,但权值一定是一样的;若由程序得出则一定 ...
分类:
其他好文 时间:
2020-06-14 23:53:07
阅读次数:
103
这题非常好。。看似很简单其实比较复杂,交了一堆假算法全wa了。。 看题解也好久才弄明白 /* 给定一张有向图,确定一个点T,问有多少T0,满足所有T0->T的路径,都经过边(T0,T) 建立反图,T变为起点,求所有T0,满足T->T0所有路径都经过(T,T0) 首先确定用bfs,我们从每个和T连边T ...
分类:
其他好文 时间:
2020-06-14 14:24:22
阅读次数:
81
一、本章学习小结 本章学习了图这一复杂的非线性数据结构,图包括有向图和无向图,有向图中又包含始点和终点,弧尾和弧头的概念。两者的本质区别应该是有无序。重点学习了DFS算法和BFS算法实现图的遍历,理解了迪杰斯特拉算法的逻辑思想。 1、图的基本术语(顶点数目为n,边数目为e) 子图、稀疏图和稠密图、权 ...
分类:
其他好文 时间:
2020-06-14 12:51:36
阅读次数:
76
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
题意: 给出一串序列,在位置为i的元素上,你可以向i+a[i]或i-a[i]的位置跳跃,前提是这两个位置在1到n的范围内。 请你计算每个节点,跳跃到与这个节点的元素值奇偶性不同的节点的最少步数。 题解: 反向建图,然后设两个超级源点,一个表示奇数,一个表示偶数,然后所有点向这两个源点连边,从这两个源 ...
分类:
其他好文 时间:
2020-06-13 00:47:36
阅读次数:
62
Description Once in a forest, there lived \(n\) aggressive monkeys. At the beginning, they each does things in its own way and none of them knows each ...
分类:
其他好文 时间:
2020-06-13 00:21:23
阅读次数:
79
#pragma GCC optimize(2) #include<bits/stdc++.h> #define ll long long #define maxn 1000005 #define inf 1e9 #define pb push_back #define rep(i,a,b) for( ...
分类:
其他好文 时间:
2020-06-12 21:47:58
阅读次数:
79