在乙個 n×n 的地圖中,一些地方可以走一些不可以走。
問你從乙個地方走到另乙個地方的最小步數。
就是直接 bfs 搞過去。
跑圖,跑到要的點就輸出退出。
#include
#include
using
namespace std;
int n, a[
1001][
1001
], sx, sy, tx, ty, ans, now, nowdis, nowx, nowy;
int dx[4]
=, dy[4]
=;queue int,
int>
> q;
bool in[
1001][
1001];
char c;
intget_num
(int x,
int y)
boolch(
int x,
int y)
void
bfs(
) q.
push
(make_pair
(get_num
(nowx + dx[i]
, nowy + dy[i]
), nowdis +1)
);}}
}int
main()
}scanf
("%d %d %d %d"
,&sx,
&sy,
&tx,
&ty)
;bfs()
;printf
("%d"
, ans)
;return0;
}
ybt高效高階2 4 1 字首統計
有一堆字串,然後每次有乙個詢問,問乙個有多少個字串是乙個給出的字串的字首。這道題可以看出用 trie 樹 甚至有點模板 就建樹就普通的建。至於詢問,其實我們可以按著長度推 trie 數的位置,每次長度都是乙個字首。然後答案加上就可以。當然,我們在詢問的時候已經不用再重新建樹,遇到沒有這個分支的就可以...
ybt高效高階3 2 2 新的開始
有乙個圖,要你讓所有點所在的連通塊都至少有乙個標記點。兩個點相連有乙個規定的費用,把乙個點標記也有費用。要費用最小,輸出最小費用。這道題看到判斷連通,我們就想到並查集。然後最小,就想到最小生成樹。但是它不一定只選乙個點標記,而且如果標記了不止乙個點,整個圖就可以不是整個連通的。那怎麼辦呢?那我們想想...
ybt高效高階3 4 4 恆星的亮度
有一些恆星,每個恆星有亮度。給出一些恆星亮度的相對關係,詢問這些恆星亮度總和至少有多大。恆星最暗的亮度是 1 數值越大越亮。關係有兩個亮度相等,乙個比另乙個亮或暗,乙個不比另乙個亮或暗。首先,有乙個小坑,就是不大於其實是小於等於,不小於是大於等於,不要搞反了。那我們會想到如果 a 亮度小於 b 那 ...