亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

hdu1026【bfs優先隊列】

2019-11-14 10:23:45
字體:
來源:轉載
供稿:網友

Ignatius and the PRincess I

Time Limit: 2000/1000 MS (java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18095 Accepted Submission(s): 5822 Special Judge

Problem Description The Princess has been abducted by the BEelzebub feng5166, our hero Ignatius has to rescue our pretty Princess. Now he gets into feng5166’s castle. The castle is a large labyrinth. To make the problem simply, we assume the labyrinth is a N*M two-dimensional array which left-top corner is (0,0) and right-bottom corner is (N-1,M-1). Ignatius enters at (0,0), and the door to feng5166’s room is at (N-1,M-1), that is our target. There are some monsters in the castle, if Ignatius meet them, he has to kill them. Here is some rules:

1.Ignatius can only move in four directions(up, down, left, right), one step per second. A step is defined as follow: if current position is (x,y), after a step, Ignatius can only stand on (x-1,y), (x+1,y), (x,y-1) or (x,y+1). 2.The array is marked with some characters and numbers. We define them like this: . : The place where Ignatius can walk on. X : The place is a trap, Ignatius should not walk on it. n : Here is a monster with n HP(1<=n<=9), if Ignatius walk on it, it takes him n seconds to kill the monster.

Your task is to give out the path which costs minimum seconds for Ignatius to reach target position. You may assume that the start position and the target position will never be a trap, and there will never be a monster at the start position.

Input The input contains several test cases. Each test case starts with a line contains two numbers N and M(2<=N<=100,2<=M<=100) which indicate the size of the labyrinth. Then a N*M two-dimensional array follows, which describe the whole labyrinth. The input is terminated by the end of file. More details in the Sample Input.

Output For each test case, you should output “God please help our poor hero.” if Ignatius can’t reach the target position, or you should output “It takes n seconds to reach the target position, let me show you the way.”(n is the minimum seconds), and tell our hero the whole path. Output a line contains “FINISH” after each test case. If there are more than one path, any one is OK in this problem. More details in the Sample Output.

Sample Input 5 6 .XX.1. ..X.2. 2…X. …XX. XXXXX. 5 6 .XX.1. ..X.2. 2…X. …XX. XXXXX1 5 6 .XX… ..XX1. 2…X. …XX. XXXXX. Sample Output It takes 13 seconds to reach the target position, let me show you the way. 1s:(0,0)->(1,0) 2s:(1,0)->(1,1) 3s:(1,1)->(2,1) 4s:(2,1)->(2,2) 5s:(2,2)->(2,3) 6s:(2,3)->(1,3) 7s:(1,3)->(1,4) 8s:FIGHT AT (1,4) 9s:FIGHT AT (1,4) 10s:(1,4)->(1,5) 11s:(1,5)->(2,5) 12s:(2,5)->(3,5) 13s:(3,5)->(4,5) FINISH It takes 14 seconds to reach the target position, let me show you the way. 1s:(0,0)->(1,0) 2s:(1,0)->(1,1) 3s:(1,1)->(2,1) 4s:(2,1)->(2,2) 5s:(2,2)->(2,3) 6s:(2,3)->(1,3) 7s:(1,3)->(1,4) 8s:FIGHT AT (1,4) 9s:FIGHT AT (1,4) 10s:(1,4)->(1,5) 11s:(1,5)->(2,5) 12s:(2,5)->(3,5) 13s:(3,5)->(4,5) 14s:FIGHT AT (4,5) FINISH God please help our poor hero. FINISH

代碼:

#include <iostream>#include <string>#include <cstring>#include <cstdio>#include <cmath>#include <cstdlib>#include <algorithm>#include <queue>#include <map>#define MST(s,q) memset(s,q,sizeof(s))#define INF 0x3f3f3f3f#define MAXN 1005using namespace std;struct node{ int x, y; int time;} pre[105][105];bool Operator <(const node& t1, const node& t2){ return t1.time > t2.time;}int N, M;char Map[105][105];bool vis[105][105];int move_x[4] = {0, 0, 1, -1}, move_y[4] = {1, -1, 0, 0};int bfs(){ priority_queue<node> Q; node Node, q; Node.x = 0, Node.y = 0, Node.time = 0; Q.push(Node); vis[0][0] = 1; pre[0][0].time = 0; while (!Q.empty()) { q = Q.top(); Q.pop(); for (int i = 0; i < 4; i++) { int x = q.x + move_x[i], y = q.y + move_y[i]; if (x >= 0 && x < N && y >= 0 && y < M && !vis[x][y] && Map[x][y] != 'X') { Node.x = x, Node.y = y; if (Map[x][y] == '.') Node.time = q.time + 1; else Node.time = q.time + Map[x][y] - '0' + 1; pre[x][y] .x = q.x, pre[x][y].y = q.y, pre[x][y].time = Node.time; if (x == N - 1 && y == M - 1) return Node.time; vis[x][y] = 1; Q.push(Node); } } } return 0;}void dfs(int time, int x, int y) // 輸出路徑{ if (x == 0 && y == 0) return; int x0 = pre[x][y].x, y0 = pre[x][y].y; int time0 = pre[x0][y0].time; dfs(time0, x0, y0); if (time == time0 + 1) { printf("%ds:(%d,%d)->(%d,%d)/n", time, x0, y0, x, y ); } else { printf("%ds:(%d,%d)->(%d,%d)/n", time0 + 1, x0, y0, x, y ); for (int i = time0 + 2; i <= time; i++) printf("%ds:FIGHT AT (%d,%d)/n", i, x, y ); }}int main(){ while (cin >> N >> M) { getchar(); for (int i = 0; i < N; i++) scanf("%s", Map[i]); MST(pre, -1); MST(vis, 0); int ans = bfs(); if (ans) { printf("It takes %d seconds to reach the target position, let me show you the way./n", ans); dfs(ans, N - 1, M - 1); printf("FINISH/n"); } else { printf("God please help our poor hero./nFINISH/n"); } }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区在线免费视频| 中文日韩电影网站| 亚洲最大福利网站| 九色精品免费永久在线| 992tv成人免费视频| 亚洲影院高清在线| 精品调教chinesegay| 亚洲国产日韩欧美在线99| 成人av在线亚洲| 亚洲成**性毛茸茸| 日本欧美一级片| 欧美久久精品午夜青青大伊人| 好吊成人免视频| 国产成人一区二区三区| 国产精品青草久久久久福利99| 中文字幕精品影院| 韩国精品美女www爽爽爽视频| 亚洲一区av在线播放| 成人啪啪免费看| 日韩暖暖在线视频| 国产精品国模在线| 日韩色av导航| 91久久国产婷婷一区二区| 91久久久久久久久久久久久| 另类色图亚洲色图| 国产综合福利在线| 久热精品视频在线| 亚洲片在线资源| 亚洲国产成人久久综合| 精品色蜜蜜精品视频在线观看| 欧美亚洲国产精品| 91久久精品视频| 久久久精品久久| 7m精品福利视频导航| 成人黄色短视频在线观看| 在线视频欧美日韩精品| 亚洲一区二区免费| 尤物yw午夜国产精品视频明星| 久久久av一区| 国产又爽又黄的激情精品视频| 亚洲国产精品热久久| 日韩av网站在线| 精品久久久久久久久久久久| 亚洲女人初尝黑人巨大| 色与欲影视天天看综合网| 91免费的视频在线播放| 中文字幕久久精品| 日韩亚洲第一页| 亚洲国产成人精品女人久久久| 亚洲三级 欧美三级| 91情侣偷在线精品国产| 亚洲午夜色婷婷在线| 久久香蕉国产线看观看av| 日韩视频中文字幕| 国产精品一区av| 福利视频第一区| 中文字幕日韩专区| 国产精品视频在线播放| 亚洲国模精品一区| 久久久91精品国产一区不卡| 欧美日韩免费在线观看| 欧美大奶子在线| 一区二区三区无码高清视频| 日韩在线免费高清视频| 欧美插天视频在线播放| 日韩精品亚洲精品| 亚洲精品美女在线观看播放| 欧美影院在线播放| 欧美一级免费视频| 日韩免费av一区二区| 国产精品无av码在线观看| 亚洲图片在区色| 欧美成人一二三| 国产精品三级久久久久久电影| 激情久久av一区av二区av三区| 国产伦精品一区二区三区精品视频| 色哟哟入口国产精品| 欧美又大粗又爽又黄大片视频| 欧美成人免费视频| 国产精品av在线| 国产91精品久久久| 丝袜一区二区三区| 亚洲福利小视频| 伊人久久五月天| 久久久国产精彩视频美女艺术照福利| 欧美大片在线免费观看| 亚洲国产精品免费| 国产成人精品电影久久久| 久久精品电影网站| 韩国欧美亚洲国产| 久久成年人免费电影| 欧美激情在线狂野欧美精品| 精品成人在线视频| 成人午夜激情网| 日韩美女视频中文字幕| 啪一啪鲁一鲁2019在线视频| 欧美日韩中文字幕日韩欧美| 最近2019中文免费高清视频观看www99| 欧美极品在线播放| 日韩精品免费综合视频在线播放| 国产精品啪视频| 国产精品久久久久7777婷婷| 久久久久久久久网站| 亚洲理论在线a中文字幕| 日韩成人中文字幕在线观看| 亚洲美女av网站| 中文字幕亚洲一区在线观看| 伦伦影院午夜日韩欧美限制| 91精品免费久久久久久久久| 亚洲欧洲第一视频| 最近中文字幕日韩精品| 成人免费在线网址| 国产精品久久久久9999| 亚洲欧美日韩中文在线| 国产97在线亚洲| 97精品视频在线播放| 欧美最猛性xxxxx免费| 中文字幕av一区二区| 欧美情侣性视频| 亚洲精品美女视频| 亚洲成年网站在线观看| 国产亚洲精品久久久久动| 国产在线拍揄自揄视频不卡99| 成人在线一区二区| 亚洲免费视频观看| 亚洲香蕉成人av网站在线观看| 97香蕉超级碰碰久久免费软件| 日韩精品高清视频| 久久久久久久国产| 日韩免费观看高清| 欧美成人久久久| 欧美视频中文在线看| www.亚洲免费视频| 亚洲香蕉伊综合在人在线视看| 亚洲黄色av女优在线观看| 久久久国产精品亚洲一区| 欧美日韩第一视频| 国产精品av在线播放| 亚洲人高潮女人毛茸茸| 91丨九色丨国产在线| 欧美xxxx18国产| 欧美激情精品久久久久| 欧美天堂在线观看| 最近2019免费中文字幕视频三| 一本色道久久88亚洲综合88| 最近中文字幕日韩精品| 国产精品第3页| 久久韩剧网电视剧| 亚洲图片制服诱惑| 国产精品女人久久久久久| 美日韩精品视频免费看| 亚洲色图激情小说| 日韩精品久久久久| 精品中文字幕乱| 精品国产福利在线| 青青草原成人在线视频| 在线成人激情视频| 久久免费少妇高潮久久精品99| 亚洲www在线| 亚洲视频日韩精品| 久久久噜噜噜久噜久久| 国产精品 欧美在线| 欧美亚洲视频在线观看| 欧美成人在线免费视频|