hrbust 1942this is bad problom 【基础bfs】
2017-12-16 18:52
411 查看
this is bad problom | ||||||
| ||||||
Description | ||||||
周末了,小辉在大街上无聊地压马路,突然他想去找女童鞋一起快乐地玩耍,但是他有个毛病就是讨厌走路,他现在想知道到每个女童鞋那里的最少步数,再决定找哪个女童鞋。 首先给出小辉和女童鞋所在的N*N平面图,如图为6*6平面图。 ....#. .*.#.. ...... ###### ...... ...... 有Q个女童鞋,每个女童鞋所在的地点用坐标表示,左上角处坐标为(0,0)。 图中'*'代表小辉所在的位置,即(1,1),'.'代表空地,'#'代表不能直接通过的建筑物。 小辉将去找他所能到达的并且离他步数最少的那个女童鞋。 女童鞋的位置可能在除建筑物的任意位置上。 | ||||||
Input | ||||||
有多组测试数据,处理到文件结束。 对于每组测试数据,第一行是两个整数N(2<=N<=100),Q(1<=Q<=1000),分别代表地区的边长和女童鞋的个数. 接下来输入n*n平面图,代表地区平面图。 然后Q行,每行一个坐标代表女童鞋所在位置。 | ||||||
Output | ||||||
输出小辉到那个女童鞋的步数,如果没有满足条件的女童鞋,则输出cry,最后换行. | ||||||
Sample Input | ||||||
6 3 | ||||||
Sample Output | ||||||
2 cry |
#include<bits/stdc++.h> using namespace std; int n, m, xx, yy; int Step[4][2] = {1, 0, 0, 1, -1, 0, 0, -1}; char maps[105][105]; int vis[105][105]; struct node { int x, y, step; } op, uv; void bfs(int nx, int ny) { memset(vis, 0, sizeof vis); op.x = nx; op.y = ny; op.step = 0; queue<node >s; s.push(op); vis[nx][ny] = 1; while(!s.empty()) { op = s.front(); if(maps[op.x][op.y] == '$') { cout << op.step << endl; return; } s.pop(); for(int i = 0; i < 4; i++) { uv.x = op.x + Step[i][0]; uv.y = op.y + Step[i][1]; if(uv.x >= 0 && uv.y >= 0 && uv.x <= n && uv.y <= n && !vis[uv.x][uv.y] && maps[uv.x][uv.y] != '#') { uv.step = op.step + 1; vis[uv.x][uv.y] = 1; s.push(uv); } } } cout << "cry" << endl; return; } int main() { while(cin >> n >> m) { for(int i = 0; i < n; i++) { scanf("%s", maps[i]); for(int j = 0; j < n; j++) { if(maps[i][j] == '*') { xx = i; yy = j; } } } for(int i = 0; i < m; i++) { int a, b; cin >> a >> b; maps[a][b] = '$'; } n--; bfs(xx, yy); } return 0; }
相关文章推荐
- 【BFS】HRBUST 1942 this is bad problom
- Hrbust-1942-this is bad problom(搜索)
- 哈理工OJ 1942 this is bad problom(搜索BFS)
- Android基础-- 利用handler发送消息报:"This message is already in use"解决办法
- 比赛补题:QUT——This is not easy (BFS)
- hrbust 1948我又回来了 【基础bfs】
- 数论基础定理及其应用(hdu 2685 I won't tell you this is about number theory, hdu 2582 f(n),hdu 1792 A New Chan)
- This site uses a plugin (application/baiducnff-activex)that is not supported 解决办法
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
- This is my first blog
- HOSt ip is not allowed to connect to this MySql server
- mysql配置,问题解决:Host '**.***.**.***' is not allowed to connect to this MySQL server.
- this.IsPostBack
- this compilation unit is not on the build path of a java project
- This system is not registered with RHN
- mysql5.7.x:this is incompatible with DISTINCT
- host XXX is not allowed to connect to this mysql server这种问题的处理
- The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the assoc
- Eclipse报错:this compilation unit is not on the build path of a java project
- This is it——unravel