
BFS
~无相~
这个作者很懒,什么都没留下…
展开
-
AcWing 340. 通信线路
题目在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站Ai和Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完成升级。输入格式第1行:三个整数N,P,K原创 2020-09-15 08:37:39 · 276 阅读 · 0 评论 -
AcWing 920. 最优乘车
思路这题用DFS,每一次判断一下当前路径是否和下一个路径是同一个车即可,这里用了BFS,难想到的是怎么建图这里用一个二维数组存下两个点是否可以直接到达,即不用换车,g[i][j]=true表示 i 到 j 可以直接到达,由于每一个边只有0/1,所以可以不用最短路,直接当成一个树去做,这样把1点放入队列做bfs,每次更新一下到跟的距离即可。代码#include <iostream>#include <algorithm>#include <cstring>原创 2020-09-14 14:42:30 · 163 阅读 · 0 评论 -
Number Clicker(双向bfs)
思路题意:给你u,v,p,总共三种变化方法,求最少经过多少次能使得u变成v做法:用双bfs,注意一下v变成u的时候变化的过程是反的,并且最后一个方法,也就是u^(p-2)%p,这一步是一个循环的过程,也就是说,其实u不断做这个计算过程,其实最后一定会进入一个循环,我这个菜鸡不知道怎么证明,自己写代码发现对于大多数情况是对的,如有大佬懂,请评论给下讲解,谢谢。转载代码#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include&转载 2020-05-27 09:17:08 · 376 阅读 · 0 评论 -
AcWing 190. 字串变换
分析代码#include <cstring>#include <queue>#include <algorithm>#include <iostream>#include <unordered_map>using namespace std;const int N=6;string A,B;string a[N];s...原创 2020-02-27 12:26:36 · 150 阅读 · 0 评论 -
Acwing1101. 献给阿尔吉侬的花束
步骤代码#include <iostream>#include <cstring>#include <algorithm>#include <queue>using namespace std;typedef pair<int, int> PII;const int N=220;char g[N][N];int di...原创 2020-01-27 11:52:50 · 312 阅读 · 0 评论 -
850. Dijkstra求最短路 II
堆优化的步骤1.用一个优先队列来存储编号和距离2.对求出已知点中的最短距离来更新每一个点3.判断是否有解代码#include <cstring>#include <iostream>#include <algorithm>#include <queue>using namespace std;typedef pair<i...原创 2019-11-16 15:03:22 · 244 阅读 · 0 评论 -
849. Dijkstra求最短路 I
给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为正值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n≤500,1≤m≤105...原创 2019-11-16 13:56:59 · 394 阅读 · 0 评论 -
848. 有向图的拓扑序列
拓扑排序其实就是用BFS,把每一次入度为0的点入对,输出,步骤1.创建邻接矩阵2.创建度的数组3.BFS代码#include <iostream>#include <queue>#include <map>#include <stdio.h>#include <algorithm>#include <unord...原创 2019-11-16 12:24:07 · 220 阅读 · 0 评论 -
AcWing 846树的重心
给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数m,表示重...原创 2019-11-16 11:06:35 · 221 阅读 · 0 评论 -
845. 八数码
在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。例如:1 2 3X 4 67 5 8在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 X例如,示例中图形就可以通过让“X”先后与右、下、右三个方向的数字交换成功得到正确排列。...原创 2019-11-16 09:31:02 · 226 阅读 · 0 评论 -
HDU1495:非常可乐
题目Description:大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是没有刻度的...原创 2019-11-14 16:41:45 · 129 阅读 · 0 评论 -
A strange lift
题目大意有一个电梯,每一次层能走的楼层数是一定的,但是可以决定向上或向下,问从A到B楼层最短需要的移动次数是多少,不可能到达就放回-1。思路其实这就是一个用BFS来求最短路问题,看看代码就很容易懂。代码#include <iostream>#include <stdio.h>#include <string.h>#include <queu...原创 2019-11-13 18:42:37 · 147 阅读 · 0 评论