国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

poj 3026 Borg Maze(bfs+prim)

2019-11-14 12:21:09
字體:
來源:轉載
供稿:網友

http://blog.csdn.net/lyy289065406/article/details/6645991題目翻譯的很好,反正我是看不懂題目

#include <iostream>#include <cstdio>#include <utility>#include <algorithm>#include <queue>#include <cstring>using namespace std;char g[100][100];int n,m;int a[100][100];int dir[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};int cost[110][110];int t[100][100];void bfs(int sx, int sy){ queue<pair<int, int> > q; while(!q.empty()) q.pop(); memset(t,-1,sizeof(t)); t[sx][sy] = 0; q.push(make_pair(sx,sy)); while(!q.empty()) { pair<int, int> now = q.front(); q.pop(); if(a[now.first][now.second] != -1) cost[a[sx][sy]][a[now.first][now.second]] = t[now.first][now.second]; for(int i = 0; i < 4; ++i) { int tx = now.first + dir[i][0]; int ty = now.second + dir[i][1]; if(g[tx][ty] == '#' || t[tx][ty] != -1) continue; t[tx][ty] = t[now.first][now.second] + 1; q.push(make_pair(tx,ty)); } }}const int INF = 99999999;int book[110];int dis[110];int PRim(int n){ int res = 0; memset(book,0,sizeof(book)); book[0] = 1; for(int i = 0; i < n; ++i) dis[i] = cost[0][i]; int cnt = 1,minn = INF,t; while(cnt < n) { minn = INF; for(int i = 0; i < n; ++i) { if(book[i] == 0 && minn > dis[i]) { minn = dis[i]; t = i; } } book[t] = 1; cnt++; res += dis[t]; for(int i = 0; i < n; ++i) { if(book[i] == 0 && dis[i] > cost[t][i]) dis[i] = cost[t][i]; } } return res;}int main(){ int t; scanf("%d",&t); while(t--) { //后邊的/n是用來吃掉換行符的,很納悶用getchar()竟然會wa scanf("%d %d/n",&m,&n); memset(a,-1,sizeof(a)); int tol = 0; for(int i = 0; i < n; ++i) { gets(g[i]); for(int j = 0; j < m; ++j) { if(g[i][j] == 'A' || g[i][j] == 'S') a[i][j] = tol++; } } for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j) if(a[i][j] != -1) bfs(i,j); printf("%d/n",prim(tol)); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西藏| 屏南县| 屯留县| 广宁县| 泗洪县| 榆中县| 垣曲县| 张家港市| 常熟市| 资阳市| 玉龙| 普格县| 白银市| 龙山县| 拉孜县| 洛浦县| 英吉沙县| 建瓯市| 虹口区| 辽源市| 灵寿县| 英山县| 锡林郭勒盟| 迁安市| 县级市| 苏州市| 山阳县| 胶南市| 丹巴县| 翁牛特旗| 苏州市| 宜州市| 定兴县| 景宁| 昂仁县| 滦南县| 思茅市| 会昌县| 高邮市| 深圳市| 鄂温|