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

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

hdu1026【bfs優先隊列】

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

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
亚洲xxxxx| 性色av香蕉一区二区| 亚洲欧美三级在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲午夜久久久久久久| 久久激情视频久久| 久久在线观看视频| 色哟哟入口国产精品| 高清日韩电视剧大全免费播放在线观看| 91精品国产九九九久久久亚洲| 国产视频一区在线| 7777kkkk成人观看| 日韩av在线网站| 国产精品户外野外| 国语自产精品视频在线看抢先版图片| 伊人激情综合网| 久久久久久久久爱| 欧美在线视频在线播放完整版免费观看| 日韩欧美在线中文字幕| 一本色道久久综合狠狠躁篇怎么玩| 亚洲新声在线观看| 国内免费精品永久在线视频| 国产成人拍精品视频午夜网站| 国产精选久久久久久| 久久久久999| 精品日本美女福利在线观看| 国产精品视频自拍| 亚洲国产日韩欧美在线99| 中文字幕欧美在线| 亚洲免费成人av电影| 欧美在线视频导航| 久久久久久久久网站| 欧美精品免费在线| 欧美色道久久88综合亚洲精品| 免费不卡欧美自拍视频| 久久亚洲精品中文字幕冲田杏梨| 欧美视频精品一区| 国产精品久久久久不卡| 欧美老肥婆性猛交视频| 国产精品入口日韩视频大尺度| 欧美日韩激情美女| 国产国语刺激对白av不卡| 国产一区二区在线免费| 国产视频丨精品|在线观看| 在线观看91久久久久久| 久久视频在线观看免费| 国产91精品久久久久| 国产精品久久久久福利| 国外成人在线直播| 亚洲激情视频在线观看| 欧美丰满老妇厨房牲生活| 久久亚洲精品成人| 日本乱人伦a精品| 欧美日韩精品国产| 久久久国产一区| 国精产品一区一区三区有限在线| 国产中文字幕91| 欧美裸体男粗大视频在线观看| 中文日韩在线视频| 久久久久久有精品国产| 亚洲一区二区三区乱码aⅴ蜜桃女| 91精品久久久久久久久久另类| 日韩在线观看免费高清完整版| 中文字幕精品av| 欧美激情国产高清| 欧美日韩国产在线播放| 一区二区三区回区在观看免费视频| 精品国产网站地址| 国产精品久久久久久久久久免费| 久久人人爽人人爽爽久久| 秋霞成人午夜鲁丝一区二区三区| 亚洲一区二区在线| 色一情一乱一区二区| 国内偷自视频区视频综合| 久久久噜噜噜久久久| 国产一区玩具在线观看| 亚洲欧洲一区二区三区久久| 久久久久久久久爱| 亚洲午夜精品久久久久久性色| 国产精品jizz在线观看麻豆| 日韩欧美国产激情| 欧美日韩国产综合新一区| 久久精品99久久久久久久久| 97视频免费看| 中文字幕久久精品| 不卡av电影在线观看| 国产亚洲激情视频在线| 亚洲色图18p| 性金发美女69hd大尺寸| 国产精品久久久久av| 欧美韩日一区二区| 久久综合免费视频| 亚洲精品wwwww| 亚洲国产天堂久久综合| 中文字幕av一区中文字幕天堂| 亚洲第一页在线| 日韩中文字幕网站| 国产一区二区三区免费视频| 欧美性xxxx极品hd满灌| 久久夜色精品国产亚洲aⅴ| 最近2019年手机中文字幕| 久久中文字幕一区| 中文字幕在线观看亚洲| 综合欧美国产视频二区| 久久五月情影视| 欧美尺度大的性做爰视频| 久久伊人免费视频| 丝袜美腿亚洲一区二区| 91精品国产高清久久久久久| 日韩精品在线视频观看| 中文亚洲视频在线| 亚洲丝袜在线视频| 欧美一区二区三区精品电影| zzjj国产精品一区二区| 欧美日韩国产一区二区三区| 亚洲丝袜一区在线| 午夜精品久久久久久久99热浪潮| 国产视频精品在线| 夜夜嗨av一区二区三区免费区| 国产在线拍偷自揄拍精品| 热99精品只有里视频精品| 欧美在线免费看| 亚洲第一福利视频| 91wwwcom在线观看| 欧美黑人巨大精品一区二区| 97在线免费视频| 欧美—级a级欧美特级ar全黄| 在线视频欧美性高潮| 亚洲国产精品va| 欧洲日本亚洲国产区| 欧美性猛交xxxx黑人猛交| 日韩成人在线免费观看| 久久久成人精品| 欧美大成色www永久网站婷| 欧美日韩免费区域视频在线观看| 欧美性极品少妇精品网站| 亚洲第一页在线| 91av网站在线播放| 在线观看欧美日韩| 久久久之久亚州精品露出| 国产成人福利网站| 国产日韩欧美视频| 高清欧美性猛交| 日韩在线视频观看| 日韩高清电影免费观看完整版| 亚洲天堂日韩电影| 成人有码在线视频| 91亚洲精品视频| 亚洲人成网站免费播放| 亚洲欧美日韩精品久久奇米色影视| 国产日韩欧美中文| 久久久久久噜噜噜久久久精品| 亚洲精品自拍第一页| 狠狠色狠狠色综合日日五| 欧美最近摘花xxxx摘花| 久久久免费精品视频| 国产精品网红直播| 欧美大荫蒂xxx| 91精品免费久久久久久久久| 国产主播在线一区| 亚洲字幕一区二区| 欧美激情视频网| 丝袜亚洲欧美日韩综合| 青青久久av北条麻妃黑人|