洛谷 P1363 幻想迷宮

2022-04-04 21:28:39 字數 1553 閱讀 1037

背景 background

(喵星人lhx和wd同心協力擊退了汪星人的入侵,不幸的是,汪星人撤退之前給它們製造了一片幻象迷宮。)

wd:嗚嗚,腫麼辦啊……

lhx:momo...我們一定能走出去的!

wd:嗯,+u+u!

描述 description

幻象迷宮可以認為是無限大的,不過它由若干個n*m的矩陣重複組成。矩陣中有的地方是道路,用'.'表示;有的地方是牆,用'#'表示。lhx和wd所在的位置用's'表示。也就是對於迷宮中的乙個點(x,y),如果(x mod n,y mod m)是'.'或者's',那麼這個地方是道路;如果(x mod n,y mod m)是'#',那麼這個地方是牆。lhx和wd可以向上下左右四個方向移動,當然不能移動到牆上。

請你告訴lhx和wd,它們能否走出幻象迷宮(如果它們能走到距離起點無限遠處,就認為能走出去)。如果不能的話,lhx就只好啟動城堡的毀滅程式了……當然不到萬不得已,他不想這麼做。。。

輸入格式:

輸入格式 inputformat

輸入包含多組資料,以eof結尾。

每組資料的第一行是兩個整數n、m。

接下來是乙個n*m的字元矩陣,表示迷宮裡(0,0)到(n-1,m-1)這個矩陣單元。

輸出格式:

輸出格式 outputformat

對於每組資料,輸出乙個字串,yes或者no。

輸入樣例#1:

5 4

##.#

##s#

#..#

#.##

#..#

5 4##.#

##s#

#..#

..#.

#.##

輸出樣例#1:

yes

no

資料範圍和注釋 hint

對於30%的資料,n,m<=20

對於50%的資料,n.m<=100.

對於100%的資料,n,m<=1500,每個測試點不超過10組資料.

dfs無限遠就是能回到原點

屠龍寶刀點選就送

#include #include 

#include

#define n 1505

int n,m,sx,sy,fx[5]=,fy[6]=,flag[n][n][3

];char

map[n][n];

using

namespace

std;

struct

node

;bool dfs(int u,int v,int

pre)

return

false;}

intmain()

flag[i][j][

1]=flag[i][j][2]=0xefefefef

; }

}if(dfs(sx,sy,233)) puts("

yes"

);

else puts("no"

); }

return0;

}

洛谷P1363 幻想迷宮

背景 background 喵星人lhx和wd同心協力擊退了汪星人的入侵,不幸的是,汪星人撤退之前給它們製造了一片幻象迷宮。wd 嗚嗚,腫麼辦啊 lhx momo.我們一定能走出去的!wd 嗯,u u!描述 description 幻象迷宮可以認為是無限大的,不過它由若干個n m的矩陣重複組成。矩陣...

洛谷P1363 幻想迷宮

背景 background 喵星人lhx和wd同心協力擊退了汪星人的入侵,不幸的是,汪星人撤退之前給它們製造了一片幻象迷宮。wd 嗚嗚,腫麼辦啊 lhx momo 我們一定能走出去的!wd 嗯,u u!描述 description 幻象迷宮可以認為是無限大的,不過它由若干個n m的矩陣重複組成。矩陣...

洛谷 P1363 幻想迷宮 解題報告

背景 background 喵星人lhx和wd同心協力擊退了汪星人的入侵,不幸的是,汪星人撤退之前給它們製造了一片幻象迷宮。wd 嗚嗚,腫麼辦啊 lhx momo.我們一定能走出去的!wd 嗯,u u!描述 description 幻象迷宮可以認為是無限大的,不過它由若干個n m的矩陣重複組成。矩陣...