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

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

hdu1026【bfs優先隊列】

2019-11-14 09:00:54
字體:
來源:轉載
供稿:網友

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
亚洲精品不卡在线| 日韩欧美成人免费视频| 欧美丝袜一区二区三区| 亚洲激情在线观看| 亚洲欧美日本伦理| 国产香蕉97碰碰久久人人| 91久久精品视频| 亚洲国产一区二区三区在线观看| 久久精品中文字幕免费mv| 136fldh精品导航福利| 日韩中文字幕视频在线| 亚洲成人在线视频播放| 色妞欧美日韩在线| 亚洲综合第一页| 在线播放日韩精品| 日韩欧美一区二区在线| 国产成人精品av| 中文字幕日韩在线观看| 亚洲欧美国产制服动漫| 国产精品人人做人人爽| 国产精品jizz在线观看麻豆| 国产剧情久久久久久| 亚洲日本成人女熟在线观看| 亚洲自拍偷拍第一页| 51久久精品夜色国产麻豆| 久久手机精品视频| 国产精品xxxxx| 国产99久久久欧美黑人| 久久久久亚洲精品成人网小说| 亚洲 日韩 国产第一| 欧美日韩国产专区| 欧美国产一区二区三区| 国产精品96久久久久久| 国产一级揄自揄精品视频| 亚洲天堂av综合网| 久久久av电影| 国产视频精品在线| 亚洲精品之草原avav久久| 欧美久久精品午夜青青大伊人| 在线电影欧美日韩一区二区私密| xxxxx91麻豆| 欧美性videos高清精品| 日韩色av导航| 亚洲国产精品yw在线观看| 欧美视频在线免费| 国产亚洲精品高潮| 91在线看www| 国产成人精品999| 日韩精品免费视频| 成人淫片在线看| 日韩av在线看| 久久久人成影片一区二区三区观看| 欧美激情精品久久久久久蜜臀| 成人动漫网站在线观看| 亚洲第一中文字幕在线观看| 国产精品久久久久福利| 欧美另类老女人| 亚洲mm色国产网站| 欧美一区二区影院| 国产91对白在线播放| 欧美xxxx18国产| 亚洲bt欧美bt日本bt| 亚洲欧美日韩在线高清直播| 精品国产成人在线| 日韩成人在线电影网| 亚洲最新av网址| 高清视频欧美一级| 亚洲欧美精品伊人久久| 日韩欧美国产免费播放| 久久这里只有精品视频首页| 欧美黑人国产人伦爽爽爽| 狠狠久久五月精品中文字幕| 亚洲欧美另类在线观看| 欧美福利视频网站| 尤物精品国产第一福利三区| 国产成人av在线播放| 综合网日日天干夜夜久久| 日韩精品视频中文在线观看| 国产精品美女av| 日韩美女在线观看| 日韩精品在线视频观看| 亚洲色图美腿丝袜| 国产精品欧美激情在线播放| 亚洲天堂2020| 亚洲第一福利网| 日本中文字幕不卡免费| 欧美午夜片在线免费观看| 亚洲精品自拍第一页| 日韩在线观看免费| 久久久精品网站| 中文字幕久久久| 欧美日韩xxx| 韩剧1988免费观看全集| 亚洲国产精品久久久久秋霞蜜臀| 精品久久久香蕉免费精品视频| 欧美激情精品久久久久久| 亚洲国产免费av| 亚洲一区亚洲二区亚洲三区| 国产97色在线| 这里精品视频免费| 在线性视频日韩欧美| 中文字幕视频在线免费欧美日韩综合在线看| 福利视频第一区| 欧美激情精品久久久久久黑人| 日韩精品有码在线观看| 91在线视频成人| 欧美黄色片免费观看| 亚洲天堂免费在线| 日韩不卡中文字幕| 亚洲tv在线观看| 亚洲午夜精品久久久久久性色| 精品无码久久久久久国产| 精品视频偷偷看在线观看| 最近日韩中文字幕中文| 久久噜噜噜精品国产亚洲综合| 久久久视频精品| 亚洲精品美女网站| 亚洲最新在线视频| 97色在线视频观看| 国产精品美女久久| 亚洲第一区中文99精品| 自拍偷拍亚洲在线| www.日韩av.com| 午夜精品久久久久久久白皮肤| 91美女片黄在线观看游戏| 国产精品扒开腿做爽爽爽男男| 美日韩精品免费视频| 亚洲欧美激情精品一区二区| 欧美亚洲第一页| 亚洲视频综合网| 日韩中文字幕在线免费观看| 91黄色8090| 亚洲欧美色图片| 欧美性猛交xxxxx水多| 欧美视频13p| 国产一区二区丝袜高跟鞋图片| 国产成人精品久久亚洲高清不卡| 成人综合国产精品| 日韩欧美a级成人黄色| 人九九综合九九宗合| 正在播放国产一区| 亚洲高清av在线| 亚洲福利在线播放| 色噜噜国产精品视频一区二区| 日本精品视频在线观看| 色av中文字幕一区| 欧美成人精品在线观看| 国产亚洲美女久久| 日本不卡视频在线播放| 中文字幕在线看视频国产欧美在线看完整| 清纯唯美亚洲激情| 亚洲已满18点击进入在线看片| 欧美亚洲另类视频| 成人国产在线激情| 亚洲精品国精品久久99热一| 欧美一级电影免费在线观看| 粉嫩av一区二区三区免费野| 亚洲精品女av网站| 国模gogo一区二区大胆私拍| 亚洲黄在线观看| 国产一区二区三区视频| 亚洲aⅴ日韩av电影在线观看| 欧美精品久久久久久久| 国内揄拍国内精品少妇国语|