這個題應用了一種新的思想,就是把運用三維陣列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 如果下...