哈理工OJ 2074 逃生(廣搜題目)

2021-07-11 01:10:06 字數 1547 閱讀 8733

逃生

time limit: 1000 ms memory limit: 65536 k

total submit: 94(28 users) total accepted: 24(20 users) rating: special judge: no

description

小a淪落到了乙個迷宮之中,這個迷宮由n*m個格仔構成,有些格仔是不能通過的,現在他要從迷宮入口(1,1)的格仔走到迷宮出口(n,m)的格仔。

因為小a的方向感很弱,轉多了會暈,所以他走到目的地的時候,最多能轉z次,否則他就永遠暈倒在原地了,到了出口也沒法出去了。

請你告訴他最少能經過多少個格仔走出迷宮。

小y從(1,1)出發到達的第乙個點都可以認為不用轉向。

input

有多組測試資料。

對於每組測試資料,第一行為3個整數n, m和z,表示n*m的迷宮,最多能轉z次。

接下來是n*m的字元矩陣,僅由0和1表示,0表示可以通過,1表示不可以通過。

(2<=n,m<=100 ,1<=z<=50)

output

對於每組測試資料,輸出一行,包含乙個整數,為經過的最少格仔數。如果無法到達目的地,輸出-1。

sample input

2 3 3

011

000

3 2 3

01 11

00 5 5 3

00000

00000

00101

01000

00000

sample output

4 -1

9 source

「科林明倫杯」哈爾濱理工大學第四屆acm程式設計競賽(預選賽)

本題的大致思路,向某個方向開始走後,一直走到底,跟不撞南牆不回頭有點相似,以前做過乙個杭電的題目hdu 1728逃離迷宮,這個題跟那個題差不多。選定了乙個方向,走到這個方向可以走到的最後乙個點那裡。然後在走的過程中不斷的將點壓入佇列,走到每乙個點所用的步數是前乙個點所用的步數加一。

下面是ac**:

#include

#include

#include

#include

using namespace std;

struct node

;int n,m,t;

int dir[4][2]= ,,,};

char a[105][105];

int book[105][105];

int bfs(int

x0,int

y0,int x1,int y1)

ne.x=ne.x+dir[i][0];

ne.y=ne.y+dir[i][1];

ne.step+=1;}}

}return -1;

}int main()}}

int re=bfs(0,0,n-1,m-1);//從第乙個點走到最後乙個點是不是可以實現

printf("%d\n",re);

}return

0;}

哈理工oj 1073 病毒

description 某種病毒襲擊了某地區,該地區有n 1 n 50000 人,分別編號為0,1,n 1,現在0號已被確診,所有0的直接朋友和間接朋友都要被隔離。例如 0與1是直接朋友,1與2是直接朋友,則0 2就是間接朋友,那麼0 1 2都須被隔離。現在,已查明有m 1 m 10000 個直接朋...

哈理工OJ 2179 深搜

組合 time limit 1000 ms memory limit 32768 k total submit 7 5 users total accepted 6 5 users rating special judge no description 給出乙個正整數n,從集合 中找出所有大小為k的...

哈理工OJ 1983 Math(字首和)

中文題意 讓你求出所有a i a j 的和是多少其中i j 思路分析 首先啊,你會發現各項的平方肯定在其中,我們先加上,然後呢,我們用qianzhui i 代表從第乙個數加到第i個數的和,我們會發現第i個數乘以後面所有的數肯定在結果中,這兩種情況的結果加起來就是所求的結果了。ac include i...