• <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從兩個入口各搜索一次,更新即可。
            先寫了一個代碼,太亂,花了不少時間,后來重寫了,要注意的代碼的整潔。
            /*
            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 田兵 閱讀(187) 評論(0)  編輯 收藏 引用 所屬分類: USACO

            <2010年6月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            国内精品欧美久久精品| 久久亚洲欧美日本精品| 亚洲精品久久久www| 国产69精品久久久久观看软件| 久久久久亚洲精品日久生情| 国内精品久久久久影院优| 久久中文娱乐网| 久久精品国产男包| 九九久久99综合一区二区| 久久国产影院| 精品久久久久久亚洲精品| 伊人久久一区二区三区无码| 久久er99热精品一区二区| 久久亚洲天堂| 99久久精品九九亚洲精品| 亚洲中文字幕无码久久精品1| 四虎国产精品免费久久5151| 久久精品国产日本波多野结衣| 欧美亚洲国产精品久久蜜芽| 久久精品国产99国产精品亚洲| 久久精品国产一区二区电影| …久久精品99久久香蕉国产| 国产精品成人久久久| 国产精品青草久久久久福利99 | 久久亚洲日韩看片无码| 9999国产精品欧美久久久久久| 99精品久久久久久久婷婷| 欧美伊人久久大香线蕉综合69| 狠狠色丁香久久婷婷综合五月 | 久久线看观看精品香蕉国产| 精品久久亚洲中文无码| 久久嫩草影院免费看夜色| 欧美亚洲另类久久综合| 久久国产精品99精品国产| 久久精品无码专区免费东京热| 久久午夜无码鲁丝片秋霞| 亚洲七七久久精品中文国产| 亚洲国产日韩综合久久精品| 日本WV一本一道久久香蕉| 亚洲精品久久久www| 亚洲欧洲中文日韩久久AV乱码|