逃生
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...