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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

杭电1180java实现(bfs)

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

詭異的樓梯:
多組數據輸入M N,表示大小然后輸入地圖。*表示墻壁,’.‘表示可以通過,S初始,T結尾位置,‘-’,‘|’代表初始樓梯狀況,每隔一秒就會換成對方。-左右走,跳過樓梯,|上下走,跳過樓梯(相當于走兩格)
分析:
1:首先要確定上下 和左右的參數設置,不能搞混,我選擇a[x][y],x代表上下(行)
2:找到時間最短的點,說明是bfs,并且為了防止爆內存,還要標記走過的路,樓梯不標記,標記過的位置不在走。用的隊列還要用優先隊列優化
3:難點是’-'和‘|’的處理。因為每秒都會變一次,所以可以要看時間,time%2=0;表示遇到的就是原始的樓梯,time%2=1,代表遇到的是相反的樓梯。
4:難點2就是停留的問題,普通的路是不會停留的,只有遇到樓梯才可能停留,這就是遇到的樓梯過不去的狀況,就要判斷過去會不會越界,過去的那個點是否已經走過。只有滿足條件,對面的點沒去過,才會等一次。
附上代碼:

import java.util.Comparator; import java.util.PriorityQueue; import java.util.Queue; import java.util.Scanner;public class 杭電1180 {static int x[]={0,1,0,-1};static int y[]={1,0,-1,0};//右 上 做 下 static int m,n; static int x1=0,y1=0,x2=0,y2=0;//起點和抹點static char a[][]=new char[20][20];public static void main(String[] args) {Scanner sc=new Scanner(System.in); while(sc.hasNext()){ m=sc.nextInt();//行 n=sc.nextInt();//列 sc.nextLine(); boolean b[][]=new boolean[m][n];//標記是否被走過 for(int i=0;i q1=new PriorityQueue(timecomepare2); //優先隊列優化 q1.add(new zuobiao(x1,y1,0));while(!q1.isEmpty()){zuobiao zuo=q1.poll();//取頭并且拋出int x3=zuo.x;int y3=zuo.y; if(x3==x2&&y3==y2) {System.out.println(zuo.time);break;}else for(int i=0;i<4;i ){ if(x3 x[i]=0&&y3 y[i]=0&&!b[x3 x[i]][y3 y[i]]) //這個點沒有訪問過 { if(a[x3 x[i]][y3 y[i]]=='.')//普通情況,不考慮樓梯{b[x3 x[i]][y3 y[i]]=true;q1.add(new zuobiao(x3 x[i],y3 y[i],zuo.time 1)); }/** 遇到豎直樓梯,1:上下方向的偶時間可行* 2:左右方向的奇時間可行*/if(a[x3 x[i]][y3 y[i]]=='|')//豎直樓梯 要看時間{if(zuo.time%2==1&&(i==0||i==2))//奇數時間 相當于‘-’; {if(y3 y[i] y[i]=0){ b[x3 x[i] x[i]][y3 y[i] y[i]]=true;q1.add(new zuobiao(x3 x[i] x[i],y3 y[i] y[i],zuo.time 1));}}else if(zuo.time%2==0&&(i==1||i==3))//偶數時間 上下 {if(x3 x[i] x[i]=0){ b[x3 x[i] x[i]][y3 y[i] y[i]]=true; q1.add(new zuobiao(x3 x[i] x[i],y3 y[i] y[i],zuo.time 1));} } else if(y3 y[i] y[i]=0&&x3 x[i] x[i]=0) {//沒爬過去并且符合條件if(b[x3 x[i] x[i]][y3 y[i] y[i]]==false)q1.add(new zuobiao(x3,y3,zuo.time 1));}//并且沒有被爬過一定要看看是否被爬過,內存卡爆}/** 遇到-方向 1:偶數時間左右方向* 2:奇數時間的上下方向 */if(a[x3 x[i]][y3 y[i]]=='-')//豎直樓梯只能左右走,走兩步{if(zuo.time%2==1&&(i==1||i==3))//左右{if(x3 x[i] x[i]=0){ b[x3 x[i] x[i]][y3 y[i] y[i]]=true; q1.add(new zuobiao(x3 x[i] x[i],y3 y[i] y[i],zuo.time 1));}}else if(zuo.time%2==0&&(i==0||i==2))//偶數時間 {if(y3 y[i] y[i]=0)//符合條件(可以跳過去){ b[x3 x[i] x[i]][y3 y[i] y[i]]=true; q1.add(new zuobiao(x3 x[i] x[i],y3 y[i] y[i],zuo.time 1));}} else if(y3 y[i] y[i]=0&&x3 x[i] x[i]=0){if(b[x3 x[i] x[i]][y3 y[i] y[i]]==false)q1.add(new zuobiao(x3,y3,zuo.time 1));}}if (a[x3 x[i]][y3 y[i]]=='T'){ b[x3 x[i]][y3 y[i]]=true;q1.add(new zuobiao(x3 x[i],y3 y[i],zuo.time 1));} }} } } public static Comparator timecomepare2 =new Comparator()//實現comparator接口 {public int compare(zuobiao a1,zuobiao a2){return (int)(a1.time-a2.time);}}; }class zuobiao { int x;int y;int time; //走的次數/時間public zuobiao(int x,int y,int time){this.x=x;this.y=y;this.time=time; } }

總結

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

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

主站蜘蛛池模板: 国产无毛av | 精品欧美黑人一区二区三区 | 大又大又粗又硬又爽少妇毛片 | 免费a级大片 | 欧美精品国产一区二区 | 成人无码视频 | 特黄aaaaaaa片免费视频 | 日韩欧美视频在线播放 | 国产黄色大片网站 | 影音先锋啪啪资源 | 免费在线观看视频a | 亚洲毛片精品 | 最新高清无码专区 | 日本在线h| av免费大片 | 日韩精品视频播放 | 欧美国产日韩在线观看 | 奇米影视第四色首页 | 熟女一区二区三区视频 | 在线日韩精品视频 | 国产sm在线 | 亚洲一区二区精品视频 | 成人av亚洲| 男裸体无遮挡网站 | 成人免费看片 | 在线观看91av| 在线观看一区二区三区视频 | 国产大学生视频 | 国产96在线 | 亚洲 | 日本在线资源 | 日韩精品久久一区 | 成年人免费看的视频 | 天堂网在线视频 | 91最新地址| 久久久国产一区二区三区 | 伊人日日夜夜 | 亚洲视频在线一区 | 午夜小视频在线播放 | 99久久精品国产色欲 | www.国产精品视频 | 波多野结衣中文字幕一区二区 | 97超碰资源总站 | 亚洲一二三av | 成人黄网免费观看视频 | 免费高清毛片 | 日本成人一区 | 中国黄色片子 | 一区二区三区精品视频在线观看 | 最新天堂在线视频 | 亚洲一区二区三区香蕉 | 69xxxx日本 | 一二三不卡视频 | 国产网红在线观看 | 在线免费黄色片 | 婷婷在线观看视频 | 免费午夜人成电影 | 欧美综合激情网 | 久久视频免费在线观看 | 看一级黄色大片 | 最近中文字幕在线观看 | 午夜aaa | 亚洲国产精品久久久久久久 | 欧美人与牲动xxxx | 呦呦在线视频 | 五月婷婷激情视频 | 久草视频福利在线 | 善良的少妇伦理bd中字 | 久久艹在线观看 | 国产一区二区三区在线免费 | 久久av影院 | 国产一级片黄色 | 男人天堂一区二区 | 欧美视频三区 | 91视频久久| 女女互慰揉小黄文 | 欧美韩国日本一区 | 免费av播放 | 国产视频久久久久久 | 五月婷婷开心网 | 国产精品嫩 | 欧美猛交xxx | 久久久久亚洲av无码网站 | 在线观看视频色 | 天天看片天天操 | 久久无码人妻一区二区三区 | 不卡的av | 夜夜撸| 91视色| 久久国产一区 | 国产成人精品一区二区三区在线观看 | 娇小萝被两个黑人用半米长 | 都市激情 自拍偷拍 | av在线收看 | 制服av网| 欧美激情片在线观看 | 亚洲午夜精品一区二区 | 国产一级理论 | 日本一区视频在线 | 手机天堂网 |