BFS
arm不strong
一只土木狗的编程之路
展开
-
PAT A1030 Travel Plan
一、题目大意PAT A1030 有 N 个城市,M 条道路,并给出 M 条道路的距离和花费。现给定起点 S 和终点 D,求从起点到终点的最短路径、最短距离和花费。如果有多条最短路径,则选择花费最小的那条。二、解题思路本题除了求最短距离外,还要求额外的两个信息:最短路径以及最短路径上的总花费,这里使用了 Dijkstra + DFS 算法,首先求出所有可能最短路径,然后用 DFS 递归...原创 2019-02-21 16:14:48 · 176 阅读 · 0 评论 -
PAT A1020 Tree Traversals
一、题目链接PAT A1020二、解题思路根据后序序列、中序序列递归建树,然后再层次遍历树。三、参考代码#include<iostream>#include<queue>using namespace std;int post[40], in[40];struct node { int data; node* left; node* ri...原创 2019-02-18 09:08:15 · 106 阅读 · 0 评论 -
Contest100000612 - 《算法笔记》9.3小节——数据结构专题(2)->树的遍历
题目链接A 树查找因为是完全二叉树,双亲与孩子结点之间的编号存在数学关系,所以就很简单啦。 先存储全部结点,然后找到第 d 层的所有结点,输出即可。参考代码如下。#include<iostream>#include<algorithm>const int maxn = 1010;using namespace std;int BT[maxn];...原创 2019-02-18 11:16:05 · 159 阅读 · 0 评论 -
PAT A1076 Forwards on Weibo
一、题目大意PAT A1076 给出 n 个微博用户的关注情况以及一个转发层数上限 L,并给出最初发布消息的用户编号,求在转发层数上限内消息最多会被多少用户转发。二、解题思路很明显要用 BFS 模拟一层一层的转发过程,结点要存储结点编号以及层数。 这里使用邻接矩阵来存储有向图,某个结点的邻接表存储的是其粉丝的编号,处理数据时应当注意。参考代码如下。三、参考代码#include...原创 2019-02-20 19:36:50 · 165 阅读 · 0 评论 -
Contest100000620 - 《算法笔记》10.3小节——图算法专题->图的遍历
题目链接A 第一题求图的连通块个数,简单题啦,DFS 或 BFS 都可以。 题目的结点数目很大,故应使用邻接表存储结点。本题用数组 V 表示结点的存在与否,每当结点入队时,就将此结点抹去。参考代码如下。#include<iostream>#include<vector>#include<queue>using namespace std;c...原创 2019-02-21 08:52:21 · 160 阅读 · 0 评论