日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

杭电1728bfs逃离迷宫java实现

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 杭电1728bfs逃离迷宫java实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Problem Description
  給定一個m × n (m行, n列)的迷宮,迷宮中有兩個位置,gloria想從迷宮的一個位置走到另外一個位置,當然迷宮中有些地方是空地,gloria可以穿越,有些地方是障礙,她必須繞行,從迷宮的一個位置,只能走到與它相鄰的4個位置中,當然在行走過程中,gloria不能走到迷宮外面去。令人頭痛的是,gloria是個沒什么方向感的人,因此,她在行走過程中,不能轉太多彎了,否則她會暈倒的。我們假定給定的兩個位置都是空地,初始時,gloria所面向的方向未定,她可以選擇4個方向的任何一個出發,而不算成一次轉彎。gloria能從一個位置走到另外一個位置嗎?
Input
  第1行為一個整數t (1 ≤ t ≤ 100),表示測試數據的個數,接下來為t組測試數據,每組測試數據中,
  第1行為兩個整數m, n (1 ≤ m, n ≤ 100),分別表示迷宮的行數和列數,接下來m行,每行包括n個字符,其中字符’.‘表示該位置為空地,字符’*'表示該位置為障礙,輸入數據中只有這兩種字符,每組測試數據的最后一行為5個整數k, x1, y1, x2, y2 (1 ≤ k ≤ 10, 1 ≤ x1, x2 ≤ n, 1 ≤ y1, y2 ≤ m),其中k表示gloria最多能轉的彎數,(x1, y1), (x2, y2)表示兩個位置,其中x1,x2對應列,y1, y2對應行。
Output
  每組測試數據對應為一行,若gloria能從一個位置走到另外一個位置,輸出“yes”,否則輸出“no”。
Sample Input
2
5 5
…**
*..



1 1 1 1 3
5 5

*.*.


*…
2 1 1 1 3
Sample Output
no
yes
首先論對寬搜的認識,學習數據結構之前,一直看不懂什么是寬搜,當時遇到搜索題很是苦惱,只會用回溯法進行深搜,還是利用到了函數運行的機制(類似遞歸),第一次真正明白寬搜的運行機制是二叉樹的遍歷,有一種用隊列的遍歷方式(二叉樹鏈接)才明白寬搜的運行機制,面對這題,深搜超時,可能有的大神優化能過。但是首先想到的應該是寬搜,核心點是轉彎的次數。
1:剛開始我打算用boolean數組標記走過的位置,用class新類time表示點的轉彎次數,后來錯了。想了一想錯的原因,右下右轉兩次,如果下右右只有一次但是晚走而沒法走,所以這種想法是錯的。
2:用數組標記當前點的最小轉彎,如果新點,入隊。若果比這個點的轉彎次小于等于,也可以入隊。這樣就能保證最終找到最終答案,但是還是不過,超時。至于原因:樓梯模型(要克服樓梯的走樓梯而不直走的問題)
3:最終處理方案:使用優先隊列,(java的需要自己百度學習一下),因為漫天都是C類的代碼,教程,我根本不知道那個是優先隊列。必須用優先隊列優化。后來請教了學長幫我解決。優先隊列讓小節點先 入隊。
wa了28次,第29次終于過了。
代碼如下:

import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue; import java.util.Scanner; /** bfs 標記節點,計入最小節點 優先隊列優化*/ public class 杭電1728bfs {static int a[][]= {{-1,0},{0,1},{1,0},{0,-1}};//左 上 右 下static boolean judgle=false;public static void main(String[] args) { Scanner sc=new Scanner(System.in);int t=sc.nextInt(); //測試數據 for(int t1=0;t1 q1=new PriorityQueue<>(timecomepare);e[y][x]=-1;q1.add(new zuobiao(x,y)); while(!q1.isEmpty()){zuobiao exa=q1.peek();//頭坐標q1.poll();int x1=exa.x;int y1=exa.y;if(x1==x2&&y1==y2){if(exa.time<=k) {judgle=true;break;}} elsefor(int i=0;i<4;i ){if(x1 a[i][0]<0||x1 a[i][0]>n-1||y1 a[i][1]<0||y1 a[i][1]>m-1||c[y1 a[i][1]][x1 a[i][0]]==false){}//不能走或者走過 else {zuobiao zuo=new zuobiao(x1 a[i][0],y1 a[i][1],exa.time,exa.fangxiang);zuo.fangxiang=i;if(zuo.fangxiang!=exa.fangxiang) {zuo.time ;}if(e[y1 a[i][1]][x1 a[i][0]]>=zuo.time)//轉頭次數小于等于,入隊{q1.add(zuo);e[y1 a[i][1]][x1 a[i][0]]=zuo.time;} else if(e[y1 a[i][1]][x1 a[i][0]]==0){//初始的沒用過,入隊q1.add(zuo);e[y1 a[i][1]][x1 a[i][0]]=zuo.time; } } }}}public static Comparator timecomepare =new Comparator()//實現comparator接口{public int compare(zuobiao a1,zuobiao a2){return (int)(a1.time-a2.time);}}; } class zuobiao {int x;int y;int time;int fangxiang;public zuobiao(int x,int y){this.x=x;this.y=y;this.fangxiang=-1;this.time=-1;}public zuobiao(int x,int y,int time,int fangxiang){this.x=x;this.y=y;this.time=time;this.fangxiang=fangxiang;}}

不知道有什么不妥或者不對的地方。請大神更正

總結

以上是生活随笔為你收集整理的杭电1728bfs逃离迷宫java实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 搡老熟女老女人一区二区 | jjzz日本女人| 香蕉视频在线观看网站 | 日日干日日干 | 日韩成人av片| 在线高清观看免费 | 国产21区 | 欧美一区在线看 | 又粗又猛又爽又黄少妇视频网站 | 亚洲AV无码国产成人久久 | 手机福利在线 | 捅肌肌| 99精品在线观看视频 | 99久久精品一区二区成人 | 国产男女精品 | 国产成人精品一区二区三区无码熬 | 国产对白在线 | 欧美人体一区二区三区 | 久久久久久av无码免费看大片 | 黄色在线播放视频 | 国产高清在线 | 国产婷婷色综合av蜜臀av | 风间ゆみ大战黑人 | 男人懂的网站 | 美女自拍偷拍 | 黄色大全在线观看 | 成人一二三四区 | 日操夜操天天操 | www.久久爱 | 看污片网站 | 国产精品视频一区二区三区不卡 | 久久不射网 | 成人免费毛片高清视频 | 手机在线观看av网站 | 亚洲大片精品 | 一级片毛片 | 国产极品美女在线 | 亚洲综合免费观看高清完整版在线 | 黄色大片日本 | 大尺度一区二区 | 毛片全黄 | 动漫精品一区二区三区 | 黄色网在线看 | 疯狂做爰的爽文多肉小说王爷 | 不卡一区在线 | 8x8ⅹ成人永久免费视频 | 日本特黄成人 | 成人免费视频一区 | 老熟妇午夜毛片一区二区三区 | 精品人妻一区二区三区四区 | 亚洲 欧美 日韩系列 | 国产黑丝一区二区 | 亚洲美女一区 | 韩国久久精品 | 全黄一级片 | 亚洲中午字幕 | 天堂男人在线 | 美国黄色av | 漂亮少妇高潮午夜精品 | 日韩中文字幕观看 | 美女上床网站 | 日本欧美一区二区三区不卡视频 | 色婷婷九月 | 无码人妻一区二区三区免费 | 红桃视频国产 | 亚洲区视频 | 97超碰在线免费 | 国产91福利| 日本高清三区 | 黄色aa毛片 | 日本成人小视频 | aa免费视频 | 奇米视频在线观看 | 欧美激情影音先锋 | 九九热视频在线 | 久久国内偷拍 | 国产精品国语对白 | 18成人免费观看网站下载 | av在线免费观看网址 | 国内精品久久久久久久久久久 | 日韩女女同性aa女同 | 中文在线资源天堂 | 成人免费一级片 | 91精品一区二区三区四区 | 无码熟妇αⅴ人妻又粗又大 | 亚洲天堂av一区二区 | 操女网站| 亚色影库 | 在线看黄色网 | 国产普通话bbwbbwbbw | 最好看的2019中文大全在线观看 | 女性向小h片资源在线观看 日本天天操 | 亚洲精品午夜精品 | 久久欧洲 | 成人天堂网 | aaa午夜| 欧美专区一区 | 国产真实乱人偷精品视频 | 中文字幕欧美色图 |