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

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            一本大道久久东京热无码AV| 久久精品草草草| 噜噜噜色噜噜噜久久| 少妇久久久久久久久久| 久久国产精品一国产精品金尊| 99热都是精品久久久久久| 国产成人久久精品一区二区三区| 国产成人精品久久免费动漫| 欧美与黑人午夜性猛交久久久 | 大伊人青草狠狠久久| 久久久青草青青国产亚洲免观| 伊人久久精品无码二区麻豆| 97久久天天综合色天天综合色hd| 人人狠狠综合88综合久久| 久久精品中文字幕久久| 漂亮人妻被中出中文字幕久久| 久久精品视频网| 久久影院综合精品| 18禁黄久久久AAA片| 久久国产三级无码一区二区| 国产精品久久波多野结衣| 99久久国产亚洲综合精品| 久久久久免费视频| 日本久久久久久中文字幕| 亚洲欧美日韩中文久久| 日本精品久久久久影院日本 | 久久精品国产亚洲AV嫖农村妇女| 久久亚洲精品无码播放| 精品久久人人爽天天玩人人妻| 国产精品无码久久久久久| 久久亚洲欧美国产精品| 亚洲AV无码久久寂寞少妇| 久久久久久午夜精品| 亚洲人成无码www久久久| 久久一区二区三区免费| 亚洲欧美久久久久9999| 色婷婷噜噜久久国产精品12p| 久久精品国产一区二区电影| 国产精品99久久久久久www| 成人国内精品久久久久影院VR| 日韩一区二区久久久久久|