日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU - 2612 Find a way(BFS搜索)

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU - 2612 Find a way(BFS搜索) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

鏈接

思路:

用BFS分別以‘Y’和‘M’的位置為起點進行兩次搜索,并把這兩次的搜索結果在一個二維數組中保存下來,在對地圖遍歷遇到‘@’更行最小值。

PS:

如果用‘Y’和‘M’點分別去搜每個‘@’,這樣妥妥的會超時。當時做這個題腦抽的一批……(煩!!!)

另外如果‘Y’和‘M’到不了‘@’這里的值為0,應該把這種情況排除。

代碼:

//#include <bits/stdc++.h> #include <queue> #include <cstdio> #include <iomanip> #include <string> #include <cstring> #include <iostream> #include <algorithm> #define inf 0x3f3f3f3f #define MAX 1000000000 #define mod 1000000000 #define FRE() freopen("in.txt","r",stdin) #define FRO() freopen("out.txt","w",stdout) using namespace std; typedef long long ll; typedef pair<int,int> P; const int maxn = 205; char mp[maxn][maxn]; int dx[4]={0,0,1,-1}; int dy[4]={1,-1,0,0}; int n,m; int vis[maxn][maxn],sum[maxn][maxn]; struct Node{int x,y,cost; };bool isin(int x,int y){return x>=0&&x<n&&y>=0&&y<m; }void BFS(int x,int y){memset(vis,0,sizeof(vis));vis[x][y] = 1;queue<Node>que;que.push(Node{x,y,0});while(!que.empty()){Node u = que.front();que.pop();for(int i=0; i<4; i++){int tx = u.x+dx[i],ty = u.y+dy[i];if(isin(tx,ty) && !vis[tx][ty] && mp[tx][ty]!='#'){vis[tx][ty] = 1;sum[tx][ty] += u.cost+11;que.push(Node{tx,ty,u.cost+11});}}}return; }int main(){while(scanf("%d%d",&n,&m)!=EOF){for(int i=0; i<n; i++){scanf("%s",mp[i]);}memset(sum,0,sizeof(sum));for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(mp[i][j]=='Y'){BFS(i,j);}else if(mp[i][j]=='M'){BFS(i,j);}}}int ans = 1000000000;for(int i=0; i<n; i++){for(int j=0; j<m; j++){if(mp[i][j]=='@' && sum[i][j]!=0){ans = min(ans,sum[i][j]);}}}printf("%d\n",ans);}return 0; }

?

轉載于:https://www.cnblogs.com/sykline/p/10464460.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的HDU - 2612 Find a way(BFS搜索)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。