zjm被困在乙個三維的空間中,現在要尋找最短路徑逃生!空間由立方體單位構成。zjm每次向上下前後左右移動乙個單位需要一分鐘,且zjm不能對角線移動。空間的四周封閉。zjm的目標是走到空間的出口。是否存在逃出生天的可能性?如果存在,則需要多少時間?input
輸入第一行是乙個數表示空間的數量。
每個空間的描述的第一行為l,r和c(皆不超過30)。
l表示空間的高度,r和c分別表示每層空間的行與列的大小。
隨後l層,每層r行,每行c個字元。
每個字元表示空間的乙個單元。』#『表示不可通過單元,』.『表示空白單元。
zjm的起始位置在』s』,出口為』e』。每層空間後都有乙個空行。
l,r和c均為0時輸入結束。
outputsample input
3 4 5
s…..###.
.##..
###.#
#####
#####
##.##
##…#####
#####
#.###
####e
1 3 3
s###e#
###0 0 0
sample output題目解析
這道題首先要理解題意,它其實就是乙個走迷宮的問題,可以採用dfs和bfs的做法。
當人處於某一層時,他只能向左,向右,向上,向下走,
#相當於牆,那麼從起點開始,
通過bfs遍歷看此人能否到達終點,需要明確的是當人處在當前層位置時,他可以跳到下一層任意一行。
但是跳到下一層所處的位置列數必須相同,就比如上面例子
s向右走
4步,向下走
2步,向左走
1步,向下走
1步,現在s處於第一層的第四行第四列。
然後s直接跳到了第二層的第四行第四列,
1,s向右走
1步,然後s直接跳到第三層終點1。
於是s最少走的路為:4+
2+1+
1+1+
1+1=
11
codes
#include
#include
using
namespace std;
char g[35]
[35][
35];int vis[35]
[35][
35],dis[6]
[3]=
,,,,
,};int l,r,c;
struct graph
; graph gh;
queue q;
void
bfs(
)for
(int i=
0;i<
6;i++)}
} cout<<
<}int
main()
}}}bfs()
;}return0;
}
Week12 必做題3(動態規劃)
東東每個學期都會去寢室接受掃樓的任務,並清點每個寢室的人數。每個寢室裡面有ai個人 1 i n 從第i到第j個宿舍一共有sum i,j a i a j 個人 這讓宿管阿姨非常開心,並且讓東東掃樓m次,每一次數第i到第j個宿舍sum i,j 問題是要找到sum i1,j1 sum im,jm 的最大值...
Week12作業 C 必做題 3 動態規劃
東東每個學期都會去寢室接受掃樓的任務,並清點每個寢室的人數。每個寢室裡面有ai個人 1 i n 從第i到第j個宿舍一共有sum i,j a i a j 個人 這讓宿管阿姨非常開心,並且讓東東掃樓m次,每一次數第i到第j個宿舍sum i,j 問題是要找到sum i1,j1 sum im,jm 的最大值...
Week12作業 必做題
a給出n個數,zjm想找出出現至少 n 1 2次的數,現在需要你幫忙找出這個數是多少?input 本題包含多組資料 每組資料報含兩行。第一行乙個數字n 1 n 999999 保證n為奇數。第二行為n個用空格隔開的整數。資料以eof結束。output 對於每一組資料,你需要輸出你找到的唯一的數。實現 ...