廣度優先搜尋練習之神奇的電梯
time limit: 1000ms memory limit: 65536k
題目描述
有一座已知層數為n的高樓,這座高樓的特殊之處在於只能靠電梯去上下樓,所以要去到某一層要非常耽誤時間,然而更悲哀的是,這座高樓的電梯是限號的,小鑫最開始的時候在1層,他想去第x層,問題是他最起碼要經過多少層(包含第x層)才能到達第x層。
輸入 多組輸入。
第一行是三個正整數n,m,q。分別代表樓的總層數,給定的m條資訊和q次查詢。
接下來的m行,每行的第乙個整數pos代表這是第pos層的電梯,第二個數代表從這一層可以去的樓層總共有num個,之後的num個數字代表從第pos層代表可以去的樓層。
最後的q行,每行乙個整數代表小鑫想去的樓層號碼。
1<=m,pos,num<=n<=200
1<=q<=20
輸出 對於每次詢問輸出乙個整數,佔一行。代表如果要去某個樓層最少要經過多少層,如果到不了的話就輸出-1。
示例輸入
10 4 3
1 2 6 7
3 4 4 6 8 10
5 2 2 3
7 3 10 5 6
4 5
9示例輸出
5 3
-1題目方法:bfs+鄰接矩陣,佇列的基本操作
前提準備:
#include
詳細用法:
定義乙個queue的變數 queue m
檢視是否為空範例 m.empty() 是的話返回1,不是返回0;
從已有元素後面增加元素 m.push()
輸出現有元素的個數 m.size()
顯示第乙個元素 m.front()
顯示最後乙個元素 m.back()
清除第乙個元素 m.pop()
#include
#include
#include
#include
using
namespace
std;
int k,key,h;
int map1[2000][2000];
int vir[2000];
struct node
;void bfs(int x)
for(int i=1;i<=k;i++)}}
printf("-1\n");
return ;
}int main()
}for(i=1;i<=10;i++)
printf("\n");
}for(i=0;imemset(vir,0,sizeof(vir));
scanf("%d",&key);
bfs(1);}}
return
0;}
廣度優先搜尋練習之神奇的電梯
廣度優先搜尋練習之神奇的電梯 time limit 1000ms memory limit 65536kb submit statistic problem description 有一座已知層數為n的高樓,這座高樓的特殊之處在於只能靠電梯去上下樓,所以要去到某一層要非常耽誤時間,然而更悲哀的是,這...
廣度優先搜尋練習之神奇的電梯
廣度優先搜尋練習之神奇的電梯 time limit 1000 ms memory limit 65536 kib submit statistic problem description 有一座已知層數為n的高樓,這座高樓的特殊之處在於只能靠電梯去上下樓,所以要去到某一層要非常耽誤時間,然而更悲哀的...
廣度優先搜尋練習之神奇的電梯
有一座已知層數為n的高樓,這座高樓的特殊之處在於只能靠電梯去上下樓,所以要去到某一層要非常耽誤時間,然而更悲哀的是,這座高樓的電梯是限號的,小鑫最開始的時候在1層,他想去第x層,問題是他最起碼要經過多少層 包含第x層 才能到達第x層。多組輸入。第一行是三個正整數n,m,q。分別代表樓的總層數,給定的...