题目链接:http://poj.org/problem?id=3322 这题并不难,理解了状态空间的纬度就很容易实现,其中状态是坐标、躺着的起始位置,躺着的形式。 搜索题目比较考验写代码的能力。 代码: #include<iostream> #include<cstdio> #include<que ...
分类:
编程语言 时间:
2020-06-20 10:36:25
阅读次数:
50
题目描述 leetcode - 102:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 解题关键 队列 BFS 结构体 碎碎念 这道题可以不用结构体,在while循环里面加一个for循环来遍历某一层的节点。但是很 ...
分类:
其他好文 时间:
2020-06-19 01:10:53
阅读次数:
67
漫画:图的 “最短路径” 问题 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
一、基础 1、 定义节点类 # Definition for a binary tree node. class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None 2、给定一张图 二、基础 ...
分类:
编程语言 时间:
2020-06-13 13:04:01
阅读次数:
55