bfs
樂_smile
这个作者很懒,什么都没留下…
展开
-
UVa 1599 理想路径 (Ideal Path)
题目:给一个n个点m条边的无向图,每条边上都涂有一种颜色,用数字表示。求节点1到节点n的一条路径,先保证边数尽量少,再保证经过边的字典序最小。一对节点可能有多对边,一条边可能链接两个相同节点。输入保证节点1可以到达节点n。颜色为 1 - 10^9的整数要点无#include<bits/stdc++.h>#define INF 0x7fffffffusing namespac...原创 2019-08-24 00:17:04 · 268 阅读 · 0 评论 -
UVa 11853 战场(paintball)
有一个1000 * 1000的战场,战场西南角的坐标为(0,0) 西北角的坐标为(0,1000)。战场有n的敌人,第i个敌人的坐标为(xi,yi) 攻击范围为ri.为了避开敌人的攻击,在任意时刻,你与每个敌人的距离都必须严格大于等于它的攻击范围。你的任务是从战场的西边(x=0 y尽量北,即尽量大进入) 从战场的东边,类似进入的出。要点:从上到下bfs一下 查看是否连通到底,如果连通到底,那就...原创 2019-08-24 18:33:12 · 379 阅读 · 0 评论 -
UVa 816 Abbott的复仇 (Abbott's Revenge)
有一个最多包含9*9个交叉点的迷宫。输入起点,离开起点时的朝向和终点,求一条最短路(多解输出任意一个均可)这个迷宫的特殊之处在于,进入一个交叉点的方向(用NEWS这四个字母分别表示北东西南,即上右左下)不同,允许出去的方向也不同。例如, 1 2 WLF NR ER * 表示交叉点(1,2)有三个路标,最后一个字符是结束标志,如果进入该点的方向是W,出去只能是L左转和F前进,其他同理。要点:...原创 2019-08-22 00:07:23 · 295 阅读 · 0 评论 -
UVa 439 骑士的移动(Knight Moves)
输入标准 8 * 8 的国际象棋棋盘上的两个格子,求马最少需要多少步从起点跳到终点。要点:转化一下行的棋盘为数字即可。#include<bits/stdc++.h>using namespace std;const int maxn = 10;int dx[8] = { -1, -2, -1, -2, 1, 2, 1, 2 };int dy[8] = { -2, -...原创 2019-08-26 19:06:59 · 291 阅读 · 0 评论 -
UVa 1600 巡逻机器人(Patrol Robot)
机器人要从一个网格的左上角走到右下角,网格中的一些格子是空地,用0表示,障碍物用1表示,机器人每次可以往上下左右走1格,但不能连续的穿过k格障碍,求最短路的长度,起点终点保证是空地。要点;本题乍看非常简单,用bfs求最短路即可,在结构体中带上已经走过的障碍数量,如果走后大于k,那么就舍弃,否则,已经走过的障碍数量++,走后是0,那么置走过的障碍数量为0然而这样的做法不太行,由于要用vis记...原创 2019-08-26 19:13:11 · 308 阅读 · 0 评论 -
UVa 810 筛子难题(A Dicey Problem)
题目:走迷宫,筛子头上的那个数字和将要走的位置的数字相同就可以走。给的是头和面对我们的两个数字,根据折叠的那张图。就可以推出来筛子长什么样。要点:一个位置被访问的条件是 在这个点骰子是一样的,即不能只依靠某个点确认是否走过,还要看骰子走到这个点的状态,来确定这个点是否走过额。本题我写的非常麻烦,但是易懂。代码很长,但基本都有注释。#include<bits/stdc++.h...原创 2019-08-28 21:37:16 · 317 阅读 · 0 评论 -
UVa 1601 万圣节后的早晨(The morning after Halloween)
题目:w*h 网格上有n (n<=3) 个小写字母,要求把他们分别移动到对应的大写字母里。每步可以有多个鬼同时移动(往上下左右移动,也可以不动,移动是独立的),每步结束后两个鬼不能占用同一个位置,也不能在一步之内交换位置。要点:建立新的有向图下面给出两种做法,在UVA上分别以 1000ms 和 750ms 左右通过, 双向bfs快了不多。bfs:#include<bit...原创 2019-09-04 19:23:03 · 367 阅读 · 0 评论 -
UVa 12569 在树上放置移动机器人(Planning mobile robot on Tree (EASY Version))
这题太简单了,我都不想说了。你们自己看吧。#include<bits/stdc++.h>#define LL long longusing namespace std;const int maxn = 15;int n, m, s, t;int state = 0;bool vis[32768][maxn];bool G[maxn][maxn];struct No...原创 2019-09-29 20:54:23 · 204 阅读 · 0 评论