• <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>
            xiaoguozi's Blog
            Pay it forword - 我并不覺(jué)的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過(guò)程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛(ài)傳出去,很困難,也無(wú)法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

             http://acm.hdu.edu.cn/showproblem.php?pid=1010

             

             1 //////////////////////////////////////////////////////////////////////////////////
             2 //以前寫(xiě)的1010是參考別人的,今天把它寫(xiě)了下(省賽題),
             3 //過(guò)程相當(dāng)艱難,忘了road=0,以至于少了一個(gè)剪枝,TLE,調(diào)試了
             4 //N久,沒(méi)發(fā)現(xiàn),以至于去優(yōu)化dfs過(guò)程,最后發(fā)現(xiàn),把第一次交
             5 //的改了后就過(guò)了,不過(guò)比未優(yōu)化時(shí)慢了100ms左右不過(guò)還是
             6 //比較開(kāi)心的,雖然囧
             7 /////////////////////////////////////////////////////////////////////////////////
             8 #include <iostream>
             9 
            10 using namespace std;
            11 const int N=8;
            12 const int M=8;
            13 char mp[N][M];
            14 int dir[4][2]={1,0,-1,0,0,-1,0,1};
            15 int n,m,t,road;
            16 struct Node
            17 {
            18     int xi,yi;
            19     int time;
            20     Node(int x=0,int y=0,int t=0):xi(x),yi(y),time(t){};
            21 }start,end;
            22 int gf;
            23 inline void Input()
            24 {
            25     road=0;
            26     gf=0;
            27     for(int i=0;i<n;i++){
            28         for(int j=0;j<m;j++){
            29             cin>>mp[i][j];
            30             if(mp[i][j]=='S'){
            31                 start.xi=i;
            32                 start.yi=j;
            33                 mp[i][j]='X';
            34             }
            35             if(mp[i][j]=='D'){
            36                 end.xi=i;
            37                 end.yi=j;
            38             }
            39             if(mp[i][j]=='.')
            40                 ++road;
            41         }
            42     }
            43 }
            44 inline bool optimize(const Node& a,const Node& b,const int ti)
            45 {
            46     if(((a.xi+a.yi+b.xi+b.yi)&1!= (ti&1) )return false;
            47     if(abs(a.xi-b.xi)+abs(a.yi-b.yi)>ti)
            48         return false;
            49     return true;
            50 }
            51 int dfs(Node const& c,int ti)
            52 {
            53     if(gf)return 1;
            54     Node ans;
            55     --ti;
            56     for(int i=0;i<4;i++){
            57         ans.xi=c.xi+dir[i][0];
            58         ans.yi=c.yi+dir[i][1];
            59         ans.time=c.time+1;    
            60         if(ans.time>t)continue;
            61         if(ans.xi==end.xi && ans.yi==end.yi && ans.time == t){
            62             gf=1;
            63             return 1;
            64         }
            65         if(mp[ans.xi][ans.yi]=='D')continue;
            66         if(ans.xi<0||ans.yi<0||ans.xi>=n||ans.yi>=m)
            67             continue;
            68         if(mp[ans.xi][ans.yi]=='X')
            69             continue;
            70         mp[ans.xi][ans.yi]='X';
            71         if(optimize(ans,end,ti))
            72             dfs(ans,ti);
            73         if(gf)return 1;
            74         mp[ans.xi][ans.yi]='.';
            75     }
            76     return 0;
            77 }
            78 int main()
            79 {
            80     while(cin>>n>>m>>t,n+m+t){
            81         Input();
            82         if(road+1<t){
            83             cout<<"NO\n";
            84         }
            85         else if(optimize(start,end,t)){
            86             if(dfs(start,t))
            87                 cout<<"YES\n";
            88             else cout<<"NO\n";
            89         }
            90         else cout<<"NO\n";
            91     }
            92     return 0;
            93 }
            posted on 2008-07-21 15:59 小果子 閱讀(1148) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            亚洲αv久久久噜噜噜噜噜| 国产亚洲精久久久久久无码AV| 久久久久亚洲AV成人网人人软件| 97久久香蕉国产线看观看| 一本大道久久a久久精品综合| 久久亚洲国产最新网站| 国产成人久久激情91| 精品国产91久久久久久久a| 91麻豆国产精品91久久久| 日韩欧美亚洲综合久久影院Ds| 一本久久a久久精品综合夜夜 | 91精品国产色综久久| 久久亚洲AV永久无码精品| 久久久久AV综合网成人| 色综合久久久久无码专区| 久久精品中文字幕一区| 国内精品久久久久| 久久99热狠狠色精品一区| 日韩电影久久久被窝网| 久久99国产精品二区不卡| 久久久久高潮综合影院| 一本久久知道综合久久| 日日噜噜夜夜狠狠久久丁香五月 | 午夜不卡久久精品无码免费| 爱做久久久久久| 香蕉aa三级久久毛片| 精品久久人人做人人爽综合| 99久久中文字幕| 72种姿势欧美久久久久大黄蕉| 久久精品国产99国产精品导航| 亚洲精品国精品久久99热| 中文字幕乱码人妻无码久久| 久久这里只精品99re66| 无码任你躁久久久久久| 久久久精品人妻无码专区不卡| 91久久九九无码成人网站| 亚洲国产精品久久久久婷婷软件| 国产精品福利一区二区久久| AV无码久久久久不卡网站下载| 国产精自产拍久久久久久蜜| 999久久久国产精品|