HDU 1728 逃离迷宫
来源:互联网 发布:手机网络延迟怎么解决 编辑:程序博客网 时间:2024/05/16 18:20
http://acm.hdu.edu.cn/showproblem.php?pid=1728
这道题和 hdu 1175 很相似,所以直接把1175这题的代码那过来修改,可是一直WA,按理说不应该WA的。。。。
后来才发现,在转弯的时候,如果当前的转弯次数和上次相同,这时候也要放到队列里,因为我们不知道那个点能通向终点,这个地方不一样,所以要改为(next.zj <= vis[xx][yy]);哎
AC代码
// hdu 1728#include <stdio.h>#include <stdlib.h>#include <string.h>#include <queue>using namespace std;int m, n, k, x1, y1, x2, y2, flag;char map[105][105];int vis[105][105];int move[4][2] = {0, -1, 0, 1, -1, 0, 1, 0};struct point{ int x, y, fx, zj;} st;queue<point>q;void bfs();int main(){//freopen("1.in","r",stdin); int i, j, t; scanf("%d", &t); while (t--) { scanf("%d %d", &m, &n); for (i = 1; i <= m; i++) { for (j = 1; j <= n; j++) { scanf(" %c", &map[i][j]); } } scanf("%d %d %d %d %d",&k, &y1, &x1, &y2, &x2); for (int ii = 1; ii <= m; ii++) for (j = 1; j <= n; j++) { vis[ii][j] = 1000; } st.x = x1; st.y = y1; st.fx = -1; st.zj = 0; flag = 0; bfs(); if (flag) { printf("yes\n"); } else { printf("no\n"); } }}void bfs(){ while (!q.empty()) { q.pop(); } q.push(st); while (!q.empty()) { point now = q.front(); q.pop();//printf("\nnow x %d,y %d, fx %d,zj %d\n", now.x, now.y, now.fx, now.zj); if (now.x == x2 && now.y == y2 ){flag = 1;return;} for (int i = 0; i < 4; i++) { int xx = now.x, yy = now.y; xx += move[i][0]; yy += move[i][1]; point next = now; next.x = xx; next.y = yy; next.fx = i; if (next.fx != now.fx && now.fx != -1) { next.zj++; } if(next.zj>k) continue; if (xx > 0 && xx <= m && yy > 0 && yy <= n && map[xx][yy] == '.') { if (next.zj <= vis[xx][yy]) { vis[xx][yy] = next.zj; q.push(next); } } } }}
0 0
- HDU 1728 逃离迷宫
- HDU 1728 逃离迷宫
- hdu 1728 逃离迷宫
- hdu 1728 逃离迷宫
- hdu 1728 逃离迷宫
- hdu 1728 逃离迷宫
- HDU-1728 逃离迷宫
- hdu 1728 逃离迷宫
- HDU 1728 逃离迷宫
- hdu 1728 逃离迷宫
- Hdu 1728 逃离迷宫
- hdu 1728 逃离迷宫
- HDU 1728 逃离迷宫
- hdu 1728 逃离迷宫
- HDU 1728 逃离迷宫
- hdu(1728)逃离迷宫
- HDU-1728 逃离迷宫
- HDU 1728 逃离迷宫
- 3同事家市房管局看是否有韶关市
- 别墅和公寓在钦奈
- 删除KITAgent.HF.constructor - 最简单的KITAgent.HF.constructor去除在那里
- C# 反射入门知识
- 创意地产杂志
- HDU 1728 逃离迷宫
- 关于如何找到一个伟大的网球场建设公司
- 你需要看在住房建筑商
- 设计模式之Iterator迭代器
- android2.--App/Notification 以及android.app.Notification$Builder.setProgress问题
- 估计市场对工程机械销售
- 获取硬盘的序列号
- spring注解@Configuration,@Value,@Bean实例
- 待字闺中之此起彼伏分析