搜尋 救公主問題

2021-10-02 19:08:39 字數 1084 閱讀 9653

搜尋 救公主問題

可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在t時刻吃掉公主,因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士lj肯定能將她救出。 

現據密探所報,公主被關在乙個兩層的迷宮裡,迷宮的入口是s(0,0,0),公主的位置用p表示,時空傳輸機用#表示,牆用*表示,平地用.表示。騎士們一進入時空傳輸機就會被轉到另一層的相對位置,但如果被轉到的位置是牆的話,那騎士們就會被撞死。騎士們在一層中只能前後左右移動,每移動一格花1時刻。層間的移動只能通過時空傳輸機,且不需要任何時間。

input

輸入的第一行c表示共有c個測試資料,每個測試資料的前一行有三個整數n,m,t。 n,m迷宮的大小n*m(1 <= n,m <=10)。t如上所意。接下去的前n*m表示迷宮的第一層的布置情況,後n*m表示迷宮第二層的布置情況。

output

如果騎士們能夠在t時刻能找到公主就輸出「yes」,否則輸出「no」。

看了很長時間,這是乙個搜尋的問題,開始並沒有什麼思路,也是經過同學提點才理解一點,首可以使用結構體,但是要記得每乙個都代表什麼。接著要理解按層數去搜尋,因為一共只有兩層,還不是很複雜。最後要記得標記,但是在遇到特殊情況時,不能增加時間,而且要到對應層數的位置。

#include

#include

struct s

p[10000];

int book[5][20][20];

char a[5][20][20];

int main()

,x1,y1,z1;

scanf("%d%d%d",&m,&n,&t);

for(k=1;k<3;k++)

if(a[p[tail-1].z][p[tail-1].x][p[tail-1].y]=='p')

}if(f)

break;

head++;

}if(f&&min<=t)

printf("yes\n");

else

printf("no\n");

}return 0;

}

Problem 救公主續

標籤 空格分隔 未分類 description 公主又被魔王抓去了!公主被關在乙個矩形迷宮裡,有的位置有守衛把守。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士肯定又會將她救出。初始時騎士在迷宮左上角 0,0 處,公主在右下角 n 1,m 1 騎士可向上下左右...

C語言小遊戲 英雄打惡龍救公主

題目 編寫乙個小遊戲,組團打boss,建立兩位英雄hero1,hero2,英雄包含生命值hp與攻擊力,建立乙個boss,同樣包含生命值與攻擊力。屬性範圍自定義。進行回合制pk,列印出pk過程。使用 sleep 英雄方人員全部倒下,列印 遊戲失敗,是否繼續。boss倒下,列印 恭喜你勇士,成功打敗惡龍...

雙向廣度搜尋 拯救公主(一)

時間限制 1 sec 記憶體限制 128 mb 提交 狀態 討論版 公主被妖怪抓到了乙個山洞裡,為了盡快營救公主,王子決定不回城搬救兵去獨自營救。山洞為矩形且十分空曠,其中生活著k個妖怪。幸運的是這些妖怪晚上都會睡覺並且沒人守夜。但是若是離妖怪太近就會驚醒它,其他的妖怪也會被驚醒,所以我們要找一條距...