博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2612 find a way
阅读量:5244 次
发布时间:2019-06-14

本文共 2044 字,大约阅读时间需要 6 分钟。

题目链接:

bfs水题。

1 /*  2   只有两个人啊。分别以两个人为起点bfs,计算出每个人到每个KFC 的时间。两个人都能到达的KFC的较大时间的最小值、就是ans。好水。T_T  3  */  4   5 #include 
6 #include
7 #include
8 #include
9 #include
10 #define maxn 1000000 11 using namespace std; 12 13 char mp[210][210]; 14 int vis[210][210]; 15 int step[210][210], step1[210][210], step2[210][210]; 16 int n, m; 17 18 struct Node{ 19 int x, y; 20 }now, temp, a, b; 21 22 queue
que; 23 24 int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1}; 25 26 bool check(Node a) { 27 if (a.x >= 0 && a.x < n && a.y >= 0 && a.y < m && !vis[temp.x][temp.y] && mp[temp.x][temp.y] != '#') 28 return true; 29 return false; 30 } 31 32 void bfs1(Node t) { 33 while(!que.empty()) { 34 que.pop(); 35 } 36 memset(vis, 0, sizeof(vis)); 37 que.push(t); 38 vis[t.x][t.y] = 1; 39 step1[t.x][t.y] = 0; 40 41 while(!que.empty()) { 42 now = que.front(); 43 que.pop(); 44 for (int i=0; i<4; ++i) { 45 temp.x = now.x + dir[i][0]; 46 temp.y = now.y + dir[i][1]; 47 if (check(temp)) { 48 vis[temp.x][temp.y] = 1; 49 step1[temp.x][temp.y] = step1[now.x][now.y] + 1; 50 que.push(temp); 51 } 52 } 53 } 54 } 55 56 void bfs2(Node t) { 57 while(!que.empty()) { 58 que.pop(); 59 } 60 memset(vis, 0, sizeof(vis)); 61 que.push(t); 62 vis[t.x][t.y] = 1; 63 step2[t.x][t.y] = 0; 64 65 while(!que.empty()) { 66 now = que.front(); 67 que.pop(); 68 for (int i=0; i<4; ++i) { 69 temp.x = now.x + dir[i][0]; 70 temp.y = now.y + dir[i][1]; 71 if (check(temp)) { 72 vis[temp.x][temp.y] = 1; 73 step2[temp.x][temp.y] = step2[now.x][now.y] + 1; 74 que.push(temp); 75 } 76 } 77 } 78 } 79 80 int main() { 81 while(cin >> n >> m) { 82 memset(vis, 0, sizeof(vis)); 83 for (int i=0; i
> mp[i][j]; 93 if (mp[i][j] == 'M') { 94 a.x = i, a.y = j; 95 } 96 else if (mp[i][j] == 'Y') { 97 b.x = i, b.y = j; 98 } 99 }100 }101 102 bfs1(a);103 bfs2(b);104 int ans = maxn;105 for (int i=0; i
View Code

 

转载于:https://www.cnblogs.com/icode-girl/p/5170117.html

你可能感兴趣的文章
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
解决php -v查看到版本与phpinfo()版本不一致问题
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
xib文件加载后设置frame无效问题
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
IOS解析XML
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>
zookeeper适用场景:分布式锁实现
查看>>