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

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

hdu1026【bfs優先隊列】

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

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
秋霞成人午夜鲁丝一区二区三区| 日本久久久久久久| 狠狠躁夜夜躁人人躁婷婷91| 91精品在线播放| 欧美激情精品久久久久| 亚洲在线视频福利| 国产精品电影网| 国产中文字幕亚洲| 尤物精品国产第一福利三区| 亚洲成av人影院在线观看| 亚洲黄色有码视频| 国产一区二区三区免费视频| 欧美一级视频免费在线观看| 国产精品久久久久久久天堂| 在线看国产精品| 日韩精品小视频| 久久精品亚洲精品| 26uuu另类亚洲欧美日本一| 欧美成人h版在线观看| 91久久精品日日躁夜夜躁国产| 国产欧美日韩中文字幕| 国产欧美一区二区三区久久| 久久久精品一区| 日韩黄色在线免费观看| 日韩经典第一页| 国内精品一区二区三区四区| 亚洲成人av中文字幕| 精品综合久久久久久97| 国产精品久久99久久| 91香蕉嫩草影院入口| 欧美大全免费观看电视剧大泉洋| 欧美日韩国产中文精品字幕自在自线| 日日骚av一区| 欧美久久久精品| 日韩视频在线免费| 国产精品羞羞答答| 欧美亚洲视频一区二区| 亚洲天堂男人天堂| 精品二区三区线观看| 国语自产偷拍精品视频偷| 日韩综合视频在线观看| 国产在线观看91精品一区| 色综合久久88色综合天天看泰| 日韩精品极品毛片系列视频| 国产精品福利网站| 午夜精品视频在线| 欧美片一区二区三区| 亚洲国产高潮在线观看| 国产精品18久久久久久首页狼| 亚洲成人1234| 欧美激情国产日韩精品一区18| 日韩美女免费观看| www欧美日韩| 欧美另类极品videosbestfree| 亚洲美女av在线| 蜜臀久久99精品久久久久久宅男| 欧美国产精品va在线观看| 日韩欧美黄色动漫| 久久精品国产免费观看| 日韩av电影手机在线观看| 国产欧美一区二区| 岛国av一区二区在线在线观看| 欧美大人香蕉在线| 日韩国产精品视频| 欧美一区三区三区高中清蜜桃| 欧美在线日韩在线| 亚洲国产高潮在线观看| 色综合天天综合网国产成人网| 国内偷自视频区视频综合| 色综合久久久久久中文网| 欧美理论在线观看| 亚洲一区精品电影| 亚洲国产成人av在线| 亚洲成av人乱码色午夜| 国产亚洲激情在线| 欧美精品在线免费观看| 欧美国产日韩一区| 精品视频偷偷看在线观看| 另类视频在线观看| 91免费观看网站| 精品视频在线观看日韩| 国产精品69精品一区二区三区| 精品亚洲一区二区三区四区五区| 国产美女精彩久久| 精品人伦一区二区三区蜜桃免费| 日韩www在线| 91欧美激情另类亚洲| 日韩av网站在线| 性欧美亚洲xxxx乳在线观看| 日韩中文字幕欧美| 亚洲黄色有码视频| 欧美精品18videos性欧| 色噜噜亚洲精品中文字幕| 久久久精品国产| 国产极品精品在线观看| 欧美激情videoshd| 国产自产女人91一区在线观看| 亚洲最大的成人网| 国产日韩欧美电影在线观看| 欧美激情精品久久久久久黑人| 欧美电影《睫毛膏》| 91精品久久久久久久久久入口| 亚洲第一网中文字幕| 国产精品入口免费视频一| 欧美视频裸体精品| 国产成人在线亚洲欧美| 亚洲欧美另类人妖| 欧美国产日韩中文字幕在线| 欧美激情欧美激情| 在线观看国产成人av片| 亚洲黄色有码视频| 日韩国产欧美区| 国产精品一区电影| 精品久久久久久久久久久| 中文日韩在线观看| 日av在线播放中文不卡| 欧美成人亚洲成人日韩成人| 国模吧一区二区| 亚洲欧美精品伊人久久| 992tv在线成人免费观看| 日韩电影中文字幕一区| 久热国产精品视频| 色黄久久久久久| 国产精品视频免费在线观看| 成人免费在线视频网址| 亚洲肉体裸体xxxx137| 久久精品国亚洲| 在线精品国产欧美| 亚洲欧美精品一区二区| 久热99视频在线观看| 欧美激情小视频| 亚洲电影免费观看高清完整版在线| 国内精品久久久久伊人av| 久久久免费观看| 欧美大片大片在线播放| 久久精品久久久久久国产 免费| 国产91对白在线播放| 久久成人国产精品| 国产成人在线亚洲欧美| 国产一区二区丝袜高跟鞋图片| 国产精品久久av| 欧美巨猛xxxx猛交黑人97人| 亚洲精品一区二区三区不| 国产中文日韩欧美| 亚洲国产精品国自产拍av秋霞| 国产精品极品美女粉嫩高清在线| 国产69久久精品成人| 国模精品系列视频| 伊人久久大香线蕉av一区二区| 欧美精品videossex88| 欧美性猛交99久久久久99按摩| 久久综合久久美利坚合众国| 在线视频日韩精品| 国内精品视频在线| 欧美制服第一页| 日韩久久精品成人| 久久精品精品电影网| 91亚洲午夜在线| 日韩av综合中文字幕| 丝袜亚洲另类欧美重口| 91国内揄拍国内精品对白| 国产精品免费小视频| 亚洲日韩欧美视频| 91精品久久久久|