hdu 2612 bfs 廣搜 距離和的最小值

2021-07-27 15:29:58 字數 656 閱讀 2703

這個題應用了一種新的思想,就是把運用三維陣列a[x][y][z]來儲存點x,y之間的距離比如 a[x][y][5] 表示x,y 之間的 距離是5;然後用乙個求和的遍歷,便可以求出最小值。

本題目還是應用bfs求出最短路。

#include

#include

#define n 210

#define inf 0xffffff

using

namespace

std;

int m,n,mark[n][n],dis[n][n][2],dir[4][2]=,flag;

char s[n][n];

struct node;

bool judge(int x,int y)

void bfs(int x,int y)}}

}int main()

else

if(s[i][j]=='m')

}for(i=0;ifor(j=0;jif(s[i][j]=='@' && min>dis[i][j][0]+dis[i][j][1])

min=dis[i][j][0]+dis[i][j][1];

printf("%d\n",min*11);

}return

0;}

HDU 2612 Find a way(兩次廣搜)

分析這道題直接兩次bfs,累加兩個人分別到達同一kfc的最短時間,然後遍歷找到到達所有kfc時間之和最小的位置。注意如果時間為0,說明沒有到達過。include include include includeusing namespace std define inf 0x3f3f3f3f cons...

深搜DFS和廣搜BFS

一般來說,廣搜常用於找單一的最短路線,或者是規模小的路徑搜尋,它的特點是 搜到就是最優解 而深搜用於找多個解或者是 步數已知 好比3步就必需達到前提 的標題,它的空間效率高,然則找到的不必定是最優解,必需記實並完成全數搜尋,故一般情況下,深搜需要很是高效的剪枝 優化 像搜尋最短路徑這些的很顯著是用廣...

廣搜BFS 配題(HDU 1180)

在當前的狀態下搜尋所有可能的狀態,1 佇列內的順序問題 2 搜尋時的各種判斷問題,邊界等等。題目 hdu 1880 中文題目 思想 典型的廣搜問題,注意三點 1 如果下乙個地點是梯子,要判斷梯子的方向和人的走向是否一致 2 因為題目要求到達t的最少時間,所以要用到優先佇列來代替傳統的佇列 3 如果下...