设为首页 加入收藏

TOP

HDU - 5025 Saving Tang Monk(二)
2015-07-20 17:39:14 来源: 作者: 【 】 浏览:6
Tags:HDU 5025 Saving Tang Monk
r.y, k = cur.k, s = cur.s; if (k == m && g[x][y] == 'T') ans = min(ans, cur.d); if (f[x][y][k][s] != -1) continue; f[x][y][k][s] = cur.d; for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; int st = g[nx][ny] - 'A'; if (st >= 0 && st < sn) { if ((1< = '1' && g[nx][ny] < '1'+m) || g[nx][ny] == '.' || g[nx][ny] == 'K' || g[nx][ny] == 'T') q.push((Node){nx, ny, k, s, cur.d+1}); } } } return ans; } int main() { while (scanf("%d%d", &n, &m) != EOF && n+m) { memset(f, -1, sizeof(f)); memset(g, 0, sizeof(g)); sn = 0; for (int i = 1; i <= n; i++) { scanf("%s", g[i]+1); for (int j = 1; j <= n; j++) { if (g[i][j] == 'S') { g[i][j] = 'A' + sn; sn++; } if (g[i][j] == 'K') sx = i, sy = j; } } int ans = bfs(); if (ans == inf) printf("impossible\n"); else printf("%d\n", ans); } return 0; }

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Effective C++:条款42:了解type.. 下一篇nyist oj 1058 部分和问题 (DFS..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)