• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 14,  comments - 11,  trackbacks - 0
            其實(shí)這個(gè)題是一個(gè)簡單的搜索問題,理解了很好做!注意4代表時(shí)間復(fù)原就行了!具體的在程序里頭,這里就不多說了,深知多說無益,還是要多練的!
             1 #include<iostream>
             2 using namespace std;
             3 int map[12][12],tp[12][12],tt[12][12];
             4 int n,m;
             5 int Min=0xffffff,sum=0;
             6 int x[4]={1,0,0,-1};
             7 int y[4]={0,1,-1,0};
             8 bool f=true;
             9 //數(shù)組的交換 
            10 void fun(int a[12][12],int b[12][12])
            11 {
            12      for (int i=1;i<=n;i++)
            13      for (int j=1;j<=n;j++)
            14          a[i][j]=b[i][j];
            15 
            16 
            17 void dfs(int x1,int y1,int sum,int p)
            18 {
            19      if(map[x1][y1]==3&&p>=0)
            20      {
            21         // 這里要注意,我是從5開始的,搜到3時(shí),p應(yīng)該是0以上,
            22         //剛開始是沒搞清楚,p大于0,wa了幾次,就是沒找到錯(cuò)誤! 
            23         if(Min>sum)Min=sum;
            24         //cout<<sum<<endl;
            25         f=false;
            26         return;
            27      }
            28      int dx,dy;
            29      for (int i=0;i<4;i++)
            30      {
            31          dx=x1+x[i];  dy=y1+y[i];
            32          if (map[dx][dy]!=0&&tp[dx][dy]==0&&p>=1)
            33          {
            34             if(map[dx][dy]==4)
            35             {
            36                map[dx][dy]=0;
            37                int temp=p;
            38                p=5;
            39               // cout<<p<<' '<<dx<<' '<<dy<<endl;
            40               //輸出路徑,偏于查找當(dāng)前的坐標(biāo)位置和剩余時(shí)間p 
            41                fun(tt,tp);
            42                memset(tp,0,sizeof(tp));
            43                //到4是可以往回搜的,所以前面的走過的路徑應(yīng)該移除標(biāo)記
            44                //用數(shù)組tt記住前面走過的路徑,以便于后面的搜索 
            45                tp[dx][dy]=1;
            46                dfs(dx,dy,sum+1,p);
            47                //出來混的,是要還的!這里也一樣! 
            48                map[dx][dy]=4;
            49                tp[dx][dy]=0;
            50                p=temp;
            51                fun(tp,tt);
            52             }
            53             else
            54             {
            55                 tp[dx][dy]=1;
            56                 //cout<<"->"<<p<<' '<<dx<<' '<<dy<<endl;
            57                 //輸出路徑,偏于查找當(dāng)前的坐標(biāo)位置和剩余時(shí)間p 
            58                 dfs(dx,dy,sum+1,p-1);
            59                 tp[dx][dy]=0;
            60             }   
            61          }    
            62      }
            63 }
            64 int main()
            65 {
            66     int t;
            67     cin>>t;
            68     while (t--)
            69     {
            70           memset(map,0,sizeof(map));
            71           memset(tp,0,sizeof(tp));
            72           cin>>n>>m;
            73           f=true;
            74           int x1,y1,x2,y2;
            75           for (int i=1;i<=n;i++)
            76           for (int j=1;j<=m;j++)
            77           {
            78               cin>>map[i][j];
            79               if(map[i][j]==2)x1=i,y1=j;
            80               //if(map[i][j]==3)x2=i,y2=j;                   
            81           }
            82           Min=0xffffff,sum=0;
            83           int p=5;
            84           map[x1][y1]=0;
            85           dfs(x1,y1,sum,5);
            86           if(!f)cout<<Min<<endl;
            87           else cout<<-1<<endl;
            88     }
            89 return 0;
            90 }
            91 
            posted on 2010-11-09 16:59 路修遠(yuǎn) 閱讀(1495) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 路修遠(yuǎn)
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            轉(zhuǎn)載,請(qǐng)標(biāo)明出處!謝謝~~

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評(píng)論

            • 1.?re: HDU 2433 最短路
            • @test
              的確這組數(shù)據(jù)應(yīng)該輸出20的
            • --YueYueZha
            • 2.?re: HDU 2433 最短路
            • 這方法應(yīng)該不對(duì)。 看下面這組數(shù)據(jù)
              4 4
              1 2
              2 3
              3 4
              2 4

              畫個(gè)圖,刪去最后一條邊 2 4 后的結(jié)果應(yīng)該是20,但是此方法的輸出是19
            • --test
            • 3.?re: HDU 2433 最短路
            • ans = ans + sum_u + sum_v - sum[u] - sum[v],
              這個(gè)公式不是很理解啊,不知道博主怎么想的啊,謝謝咯
            • --姜
            • 4.?re: HDU 2433 最短路
            • @attacker
              the i-th line is the new SUM after the i-th road is destroyed
            • --路修遠(yuǎn)
            • 5.?re: HDU 2433 最短路
            • 你這樣可以AC????刪除<U,V>不僅改變 u,v最短路啊、、、求解
            • --attacker

            閱讀排行榜

            評(píng)論排行榜

            久久亚洲私人国产精品vA| 久久青草国产手机看片福利盒子| 99久久精品国内| 久久亚洲精品成人AV| 亚洲AV无一区二区三区久久| 久久性精品| 亚洲&#228;v永久无码精品天堂久久 | 久久播电影网| 国产亚州精品女人久久久久久 | 国产精品美女久久久久久2018| 亚洲人成精品久久久久| 久久影院综合精品| 天天爽天天狠久久久综合麻豆| 亚洲精品乱码久久久久久中文字幕 | 国产精品久久久天天影视香蕉| 一本久久久久久久| 久久免费香蕉视频| 久久久久亚洲av成人网人人软件| 久久综合久久性久99毛片| 7777精品伊人久久久大香线蕉 | 久久人人爽人爽人人爽av| 久久人人添人人爽添人人片牛牛| 精品国产乱码久久久久久呢| 久久精品夜夜夜夜夜久久| 四虎国产永久免费久久| 久久天天躁狠狠躁夜夜av浪潮| 奇米影视7777久久精品人人爽| 亚洲级αV无码毛片久久精品| 久久久精品免费国产四虎| 久久久久国产精品三级网| 精品综合久久久久久98| 久久综合久久综合久久| 久久九色综合九色99伊人| 久久久精品人妻一区二区三区蜜桃| 9191精品国产免费久久| 囯产极品美女高潮无套久久久| 久久国产精品-久久精品| 色播久久人人爽人人爽人人片aV| 久久综合给合久久狠狠狠97色| 久久91精品综合国产首页| 久久精品麻豆日日躁夜夜躁|