• <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>

            USACO chapter 2 section 2.4 Overfencing

            USER: tian tianbing [tbbd4261]
            TASK: maze1
            LANG: C++

            Compiling...
            Compile: OK

            Executing...
               Test 1: TEST OK [0.011 secs, 3052 KB]
               Test 2: TEST OK [0.000 secs, 3052 KB]
               Test 3: TEST OK [0.000 secs, 3052 KB]
               Test 4: TEST OK [0.000 secs, 3052 KB]
               Test 5: TEST OK [0.011 secs, 3052 KB]
               Test 6: TEST OK [0.000 secs, 3088 KB]
               Test 7: TEST OK [0.022 secs, 3052 KB]
               Test 8: TEST OK [0.000 secs, 3052 KB]
               Test 9: TEST OK [0.011 secs, 3052 KB]
               Test 10: TEST OK [0.151 secs, 3052 KB]

            All tests OK.
            Your program ('maze1') produced all correct answers!  This is your
            submission #2 for this problem.  Congratulations!

            DFS從兩個(gè)入口各搜索一次,更新即可。
            先寫了一個(gè)代碼,太亂,花了不少時(shí)間,后來重寫了,要注意的代碼的整潔。
            /*
            ID:tbbd4261
            PROG:maze1
            LANG:C++
            */

            #include
            <fstream>
            using namespace std;
            ifstream fin(
            "maze1.in");
            ofstream fout(
            "maze1.out");
            char wall[205][80]={0};
            int step[105][40]={0};
            char ch;
            int x1=0,y1=0,x2=0,y2=0,i,j,w,h;
            int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};


            void input()
            {
                 fin
            >>w>>h;  
                 fin.
            get();
                 
            for(i=1; i<=2*h+1; i++)
                 {
                    
            for(j=1; j<=2*w+1; j++)
                          {
                               fin.
            get(ch); wall[i][j]=ch;
                               
            if((i==1||i==2*h+1||j==1||j==2*w+1)&&ch==' ')
                               {
                                         
            if(!x1){ x1=i; y1=j; }
                                         
            else {x2=i; y2=j; }
                               } 
                          }
                    fin.
            get();
                 }
            }


            bool valid(int i, int j)
            return i>=2&&i<=2*h&&j>=2&&j<=2*w&&(i%2==0)&&(j%2==0) ; }

            bool valid2(int i, int j){return i>=1&&i<=h&&j>=1&&j<=w; }

            void deal(int &x, int &y)
            {
                 
            for( i=0; i<4; i++ )
                     
            if(valid(x+dx[i],y+dy[i]))
                     { x
            =x+dx[i]; y=y+dy[i]; }
                 x
            /=2; y/=2;
            }

            void dfs(int i, int j)
            {
                  
            for(int k=0; k<4; k++)
                      
            if(valid2(i+dx[k],j+dy[k])&&wall[2*i+dx[k]][j*2+dy[k]]==' ')
                           
            if((step[i+dx[k]][j+dy[k]]>step[i][j]+1)||step[i+dx[k]][j+dy[k]]==0)      
                           {  step[i
            +dx[k]][j+dy[k]]=step[i][j]+1; dfs(i+dx[k],j+dy[k]); }
            }
            int main()
            {
                input();
                deal(x1,y1);
                deal(x2,y2);
                step[x1][y1]
            =1;
                step[x2][y2]
            =1;
                dfs(x1,y1);
                dfs(x2,y2);
                
            int max=1;
                
            for(i=1; i<=h; i++)
                
            for(j=1; j<=w; j++)
                   
            if(step[i][j]>max)max=step[i][j];
                fout
            <<max<<endl;   
                
            return 0;
            }

            posted on 2010-08-03 10:41 田兵 閱讀(189) 評論(0)  編輯 收藏 引用 所屬分類: USACO

            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            久久99精品久久久久久9蜜桃| 久久99亚洲综合精品首页| 伊人色综合久久天天| 婷婷综合久久狠狠色99h| 久久亚洲精品无码观看不卡| 亚洲国产精品无码久久九九| 伊人久久大香线蕉成人| 亚洲中文字幕无码久久2017| 久久精品一区二区三区不卡| 久久久久九九精品影院| 久久精品视频免费| 久久福利资源国产精品999| 久久激情五月丁香伊人| 伊人久久大香线蕉av不变影院| 国产精品久久免费| 亚洲AV无码成人网站久久精品大| 国产精品内射久久久久欢欢| 99精品国产在热久久| 亚洲国产精品综合久久一线| 久久99精品国产麻豆宅宅| 国产69精品久久久久观看软件| 俺来也俺去啦久久综合网| 奇米影视7777久久精品| 日产精品久久久一区二区| 欧美与黑人午夜性猛交久久久 | 欧美精品一本久久男人的天堂| 亚洲?V乱码久久精品蜜桃| 中文字幕一区二区三区久久网站| 亚洲国产另类久久久精品黑人| 久久久久香蕉视频| www亚洲欲色成人久久精品| 国产精品久久久久无码av| 亚洲中文精品久久久久久不卡| 日韩久久无码免费毛片软件| 色综合久久综精品| 亚洲国产精品热久久| 91精品国产91热久久久久福利| 97久久超碰国产精品2021| 国产精品99精品久久免费| 7777久久亚洲中文字幕| 99久久99久久精品免费看蜜桃|