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

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

Children of the Candy Corn [bfs][dfs]

2019-11-11 04:24:54
字體:
來源:轉載
供稿:網友

The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombies, chainsaw-wielding psychopaths, hippies, and other terrors on their quest to find the exit.

One popular maze-walking strategy guarantees that the visitor will eventually find the exit. Simply choose either the right or left wall, and follow it. Of course, there’s no guarantee which strategy (left or right) will be better, and the path taken is seldom the most efficient. (It also doesn’t work on mazes with exits that are not on the edge; those types of mazes are not rePResented in this problem.)

As the proprieter of a cornfield that is about to be converted into a maze, you’d like to have a computer program that can determine the left and right-hand paths along with the shortest path so that you can figure out which layout has the best chance of confounding visitors.

Input

Input to this problem will begin with a line containing a single integer n indicating the number of mazes. Each maze will consist of one line with a width, w, and height, h (3 <= w, h <= 40), followed by h lines of w characters each that represent the maze layout. Walls are represented by hash marks (‘#’), empty space by periods (‘.’), the start by an ‘S’ and the exit by an ‘E’.

Exactly one ‘S’ and one ‘E’ will be present in the maze, and they will always be located along one of the maze edges and never in a corner. The maze will be fully enclosed by walls (‘#’), with the only openings being the ‘S’ and ‘E’. The ‘S’ and ‘E’ will also be separated by at least one wall (‘#’).

You may assume that the maze exit is always reachable from the start point.

Output

For each maze in the input, output on a single line the number of (not necessarily unique) squares that a person would visit (including the ‘S’ and ‘E’) for (in order) the left, right, and shortest paths, separated by a single space each. Movement from one square to another is only allowed in the horizontal or vertical direction; movement along the diagonals is not allowed.

Sample Input28 8#########......##.####.##.####.##.####.##.####.##...#..##S#E####9 5##########.#.#.#.#S.......E#.#.#.#.##########Sample Output37 5 517 17 9

題解

迷宮算法有個貪心算法就是右墻優先算法,計算機導論老師講機器人走迷宮時講過。右邊通往右轉否則前面通前走否則左邊同左轉否則后轉,走一遍能走出迷宮,該算法對我們ACM沒有什么利用價值。對于這個題知道按它走一遍即可。

用bfs找最短路。dfs找left or right優先路徑。 巧用模運算,以動態對應不同狀態下的上下左右,如此可以省略相當一部分代碼。

//Accepted 604kB 0ms#include<stdio.h>#include<string.h>#include<queue>#define MAX_N 42using namespace std;char map[MAX_N][MAX_N];int best[MAX_N][MAX_N];int W,H,s_x,s_y,e_x,e_y;//一次是 左 上 右 下int ox[]={0,1,0,-1};int oy[]={-1,0,1,0};int bfs(){ memset(best,-1,sizeof(best)); queue<pair<int,int> > que; que.push(make_pair(s_x,s_y)); best[s_x][s_y]=1; while(!que.empty()){ int X=que.front().first,Y=que.front().second;que.pop(); int step=best[X][Y]; if(X==e_x&&Y==e_y) return step; for(int i=0;i<4;i++){ int x=X+ox[i]; int y=Y+oy[i]; if(0<=x&&x<H&&0<=y&&y<W&&map[x][y]=='.'&&best[x][y]==-1){ best[x][y]=step+1; que.push(make_pair(x,y)); } } } return -1;}int dfs1(int X,int Y,int op){ if(X==e_x&&Y==e_y) return 1; for(int i=0;i<4;i++){ int x=X+ox[(i+op)%4]; int y=Y+oy[(i+op)%4]; if(0<=x&&x<H&&0<=y&&y<W&&map[x][y]=='.') return dfs1(x,y,(i+op+3)%4)+1; }}//一次是 右 上 左 下int Ox[]={0,1,0,-1};int Oy[]={1,0,-1,0};int dfs2(int X,int Y,int op){ if(X==e_x&&Y==e_y) return 1; for(int i=0;i<4;i++){ int x=X+Ox[(i+op)%4]; int y=Y+Oy[(i+op)%4]; if(0<=x&&x<H&&0<=y&&y<W&&map[x][y]=='.') return dfs2(x,y,(i+op+3)%4)+1; }}int sove_b(){}int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&W,&H); for(int i=0;i<H;i++) scanf("%s",map[i]); for(int k=0;k<H;k++) for(int j=0;j<W;j++) if(map[k][j]=='S') s_x=k,s_y=j; else if(map[k][j]=='E'){ map[k][j]='.'; e_x=k,e_y=j; } int a=dfs1(s_x,s_y,0); int b=dfs2(s_x,s_y,0); int ans=bfs(); printf("%d %d %d/n",b,a,ans); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲另类激情另类| 国产成人在线一区二区| 国内精品视频久久| 久久精品视频99| 欧美精品999| 国产日韩在线一区| 欧美性猛交xxxx乱大交| 日韩在线免费视频观看| 色妞在线综合亚洲欧美| 久久久亚洲影院| 国产原创欧美精品| 国产亚洲人成网站在线观看| 亚洲国产精品高清久久久| 成人国产精品久久久久久亚洲| 91综合免费在线| 欧美丝袜美女中出在线| 福利视频导航一区| 国产www精品| 精品久久久久久久久久久久久久| 日韩av一区二区在线| 久久免费视频在线观看| 久久成人精品电影| 亚洲男人天堂视频| 久久久av免费| 国产欧美中文字幕| 久久最新资源网| 日韩欧美亚洲国产一区| 免费91在线视频| 日韩av中文字幕在线| 久久视频国产精品免费视频在线| 九九精品在线观看| 国产亚洲精品美女久久久| 中文国产成人精品久久一| 日本一区二区三区在线播放| 亚洲精品久久在线| 日韩欧美国产高清91| 国产一区二区三区视频在线观看| 成人在线播放av| 91夜夜揉人人捏人人添红杏| 日韩在线观看免费av| 亚洲精品wwww| 日韩欧美第一页| 亚洲精品久久久久久下一站| 亚洲一区二区三区成人在线视频精品| 亚洲电影av在线| 国产91在线播放| 国产婷婷色综合av蜜臀av| 亚洲在线免费视频| 国产一区二区三区在线观看视频| 国产精品美女久久久久av超清| 一本色道久久综合狠狠躁篇的优点| 久久久久北条麻妃免费看| 久久人体大胆视频| 欧美肥婆姓交大片| 亚洲深夜福利视频| 91在线高清视频| 欧美日韩中文字幕综合视频| 狠狠躁天天躁日日躁欧美| 欧美激情在线有限公司| 91av网站在线播放| 高清视频欧美一级| 国产网站欧美日韩免费精品在线观看| 中文字幕在线国产精品| 亚洲欧美日韩中文在线制服| 欧美日韩综合视频网址| 成人福利网站在线观看| 日韩成人性视频| 欧美高清视频免费观看| 91黑丝在线观看| 欧美日韩国产va另类| 亚洲码在线观看| 色噜噜国产精品视频一区二区| 日韩免费在线观看视频| 久久久日本电影| 久久久天堂国产精品女人| 午夜精品久久久久久久99热| 欧美精品在线播放| 欧美福利在线观看| 91美女福利视频高清| 97精品国产91久久久久久| 久久久久久有精品国产| 欧美午夜女人视频在线| 国产成人精品免费久久久久| 国产精品综合久久久| 国产精品中文字幕久久久| 亚洲精品视频中文字幕| 亲子乱一区二区三区电影| 日本免费久久高清视频| 欧美另类老女人| 欧美日韩国产一区在线| 日韩在线视频免费观看高清中文| 精品国产视频在线| 欧美高清视频免费观看| 久久亚洲国产成人| 国产精自产拍久久久久久蜜| 欧美黑人xxxⅹ高潮交| 国产精品xxxxx| 国产精品一二三视频| 在线午夜精品自拍| 欧美超级乱淫片喷水| 国产精品99一区| 日本在线观看天堂男亚洲| 最近2019年手机中文字幕| 国产精品视频久久久久| 成人乱色短篇合集| 日韩精品视频免费专区在线播放| 欧美午夜视频在线观看| 久久99精品久久久久久青青91| 亚洲一区二区三区在线免费观看| 亚洲精品自拍第一页| 97精品国产97久久久久久免费| 在线看欧美日韩| 日韩欧美在线播放| 亚洲伊人成综合成人网| 欧美理论片在线观看| 欧美精品videos性欧美| 最新国产精品拍自在线播放| 成人午夜在线影院| 国产精品美女免费视频| 亚洲3p在线观看| 亚洲精品www久久久久久广东| 国语自产精品视频在线看| 亲子乱一区二区三区电影| 日韩在线视频免费观看高清中文| 亚洲精品suv精品一区二区| 欧美日韩在线影院| 性色av一区二区三区免费| 69av成年福利视频| 亚洲国产日韩欧美综合久久| 国产精品一区二区久久| 日韩**中文字幕毛片| 成人av番号网| 中日韩美女免费视频网址在线观看| 91亚洲人电影| 亚洲欧美日韩第一区| 色老头一区二区三区| 亚洲国产第一页| 国产精品一区二区久久久| 日韩免费在线免费观看| 热久久99这里有精品| 国产欧美精品一区二区| 激情成人中文字幕| 国产中文字幕日韩| 国产中文字幕日韩| 宅男66日本亚洲欧美视频| 午夜欧美不卡精品aaaaa| 国产精品第一第二| 亚洲精品国产综合区久久久久久久| 55夜色66夜色国产精品视频| 亚洲国产99精品国自产| 欧美裸身视频免费观看| 国产精品a久久久久久| 色偷偷88888欧美精品久久久| 欧美黄色小视频| 亚洲免费视频观看| 日韩三级成人av网| 欧美黄色免费网站| 欧美精品电影在线| 亚洲成人精品视频在线观看| 91精品国产免费久久久久久| 日韩中文字幕视频在线观看| 中文字幕欧美在线| 国内伊人久久久久久网站视频| 成人高清视频观看www|