<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      字母迷宮題解

      思路:

      看到這題一眼跑廣搜,但是轉眼天堂之門,欸為什么要加2?

      好像沒法廣搜(不滿足廣搜特性),咋辦?涼拌。

      該怎么讓它滿足廣搜特性(先搜到的是最優的)。

      欸,我們是不是可以將隊列換成優先隊列讓先搜到的最優。好像是的欸,優先隊列啟動!

      代碼:

      #include<bits/stdc++.h>
      using namespace std;
      int ans[1210][1210],nxt[4][2]={1,0,0,1,-1,0,0,-1},nxt1[4][2]={2,0,0,2,-2,0,0,-2},nxt2[4][2]={1,1,1,-1,-1,-1,-1,1},n;
      char maps[1210][1210];
      struct node{
          int x,y,step;
          friend bool operator<(const node X,const node Y){
              return X.step>Y.step;
          }
      };
      void bfs(){
          priority_queue<node> que;
          if(maps[1][1]!='*') que.push({1,1,1}),ans[1][1]=1;
          if(maps[1][n]!='*') que.push({1,n,1}),ans[1][n]=1;
          if(maps[n][1]!='*') que.push({n,1,1}),ans[n][1]=1;
          while(!que.empty()){
              node Now=que.top();
              que.pop();
              if(Now.x==n&&Now.y==n){
                  cout<<Now.step;
                  exit(0);
              }
              if(maps[Now.x][Now.y]=='A'){
                  for(int i=0;i<4;i++){
                      node Next=Now;
                      Next.x+=nxt[i][0];
                      Next.y+=nxt[i][1];
                      Next.step++;
                      if(Next.x>=1&&Next.x<=n&&Next.y>=1&&Next.y<=n&&Next.step<ans[Next.x][Next.y]&&maps[Next.x][Next.y]!='*'){
                          ans[Next.x][Next.y]=Next.step;
                          que.push(Next);
                      }
                  }
              }else if(maps[Now.x][Now.y]=='B'){
                  for(int i=0;i<4;i++){
                      node Next=Now;
                      Next.x+=nxt1[i][0];
                      Next.y+=nxt1[i][1];
                      Next.step++;
                      if(Next.x>=1&&Next.x<=n&&Next.y>=1&&Next.y<=n&&Next.step<ans[Next.x][Next.y]&&maps[Next.x][Next.y]!='*'){
                          ans[Next.x][Next.y]=Next.step;
                          que.push(Next);
                      }
                  }
              }else{
                  for(int i=0;i<4;i++){
                      node Next=Now;
                      Next.x+=nxt2[i][0];
                      Next.y+=nxt2[i][1];
                      Next.step+=2;
                      if(Next.x>=1&&Next.x<=n&&Next.y>=1&&Next.y<=n&&Next.step<ans[Next.x][Next.y]&&maps[Next.x][Next.y]!='*'){
                          ans[Next.x][Next.y]=Next.step;
                          que.push(Next);
                      }
                  }
              }
          }
      }
      int main(){
          cin>>n;
          for(int i=1;i<=n;i++){
              for(int j=1;j<=n;j++){
                  ans[i][j]=1e9;
                  cin>>maps[i][j];
              }
          }
          bfs();
          cout<<"No answer";
      }
      
      posted @ 2024-03-24 16:37  Z_AuTwT  閱讀(56)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 57pao成人国产永久免费视频| 国产精品黄色大片在线看| 英德市| 国产精品日本一区二区不卡视频| 国产MD视频一区二区三区| 欧美一本大道香蕉综合视频| 2019国产精品青青草原| 乱人伦人妻系列| 东方四虎在线观看av| 日韩V欧美V中文在线| 中文字幕在线精品人妻| 热久在线免费观看视频| 国产精品人妻中文字幕| 在线精品自拍亚洲第一区| 色噜噜在线视频免费观看| 成人国产精品一区二区网站公司| 久久月本道色综合久久| 色就色中文字幕在线视频| 国产成人综合色就色综合| 最新精品国偷自产在线美女足| 毛多水多高潮高清视频| 午夜在线不卡| 精品国产免费第一区二区三区| 精品久久久bbbb人妻| 国内精品久久黄色三级乱| 大尺度国产一区二区视频 | 一日本道伊人久久综合影| 祥云县| 国产精品黄色大片在线看| 国产黑色丝袜在线播放| 国产老熟女无套内射不卡| 国产精品免费AⅤ片在线观看| 亚洲AV午夜成人无码电影| 亚洲精国产一区二区三区| 少妇久久久被弄到高潮| 高清国产一区二区无遮挡| 亚洲无av在线中文字幕| 91偷自国产一区二区三区| 泽州县| 久久涩综合一区二区三区| 西吉县|