深搜 城市交通

2021-08-20 21:30:58 字數 1361 閱讀 1900

由於牛奶市場的需求,奶牛必須前往城市,但是唯一可用的交通工具是計程車.教會奶牛如何在城市裡打的.

給出乙個城市地圖,東西街區e(1≤e≤40),南北街區n(1≤n≤30).製作乙個開車指南給計程車司機,告訴他如何從起點(用s表示)到終點(用e表示).每乙個條目用空格分成兩部分,第乙個部分是方向(n,e,s,w之一),第二個是乙個整數,表示要沿著這個方向開幾個十字路口.如果存在多條路線,你應該給出最短的.資料保證,最短的路徑存在且唯一.地圖中「+」表示十字路口,道路用「i」和「一」表示.建築和其他設施用「.」表示.下面是一張地圖:

計程車可以沿著東,北,西,北,東開兩個十字路口,以此類推.具體將由樣例給出。

第1行:兩個用空格隔開的整數n和e.

第2到2n行:每行有2e-i個字元,表示地圖.

每行有乙個表示方向的字母和乙個表示要開幾個十字路口的數字表示.

3 6+-+-+.+-+-+|...|.....|+-+.+-+-+-+..|.......|s-+-+-+.e-+

我有個同學2017gdgzoi999用深搜做出來了,看深搜**的可以看他的部落格【廣搜】城市交通。

我考試的時候用深搜做了38分,稍微改一下變成50分,再改改直接accepted!

不多說,直接看**:

#include #include #include #include #include #include #include using namespace std;

int n, m, startx, starty, ans, anses[2][30000],

xx[4] = ,

yy[4] = ;

char s[100][100],

di[4] = ;

bool tf = false;

void dfs(int sx, int sy)

for(int x = 0; x < ans; x++) if(anses[0][x] != -1) cout << di[anses[0][x]] << " " << anses[1][x] << endl;

cout << endl;

tf = true;

return;

} for(int x = 0; x < 4; x++) }

int main()

} //cout << "here!" << endl;

dfs(startx, starty);

return 0;

}

寫得不算太醜,0ms通過,還是挺好的。

老師講的時候說的廣搜,同學用廣搜,網上全是廣搜,但是我就能用深搜做出來!

SSL 城市交通

有n個城市,編號1 n,有些城市之間有路相連,有些則沒有,有路則當然有乙個距離。現在規定只能從編號小的城市到編號大的城市,問你從編號為1的城市到編號為n的城市之間的最短距離是多少?先輸入乙個n,表示城市數,n小於100。下面的n行是乙個n n的鄰接矩陣map i,j 其中map i,j 0表示城市i...

城市交通費

城市交通費 問題描述 有 n 個城市,編號 1 n。其中 i 號城市的繁華度為 pi。省內有 m 條可以雙向同行的高速 公路,編號 1 m。編號為 j 的高速公路連線編號為 aj 和 bj 兩個城市,經過高速公路的費用 是 wj。若從城市 x 出發到某城市 y,除了需要繳納高速公路費用,還要繳納 城...

城市交通 SSL 1636

description 有n個城市,編號1 n,有些城市之間有路相連,有些則沒有,有路則當然有乙個距離。現在規定只能從編號小的城市到編號大的城市,問你從編號為1的城市到編號為n的城市之間的最短距離是多少?input 先輸入乙個n,表示城市數,n小於100。下面的n行是乙個n n的鄰接矩陣map i,...