• <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 田兵 閱讀(197) 評論(0)  編輯 收藏 引用 所屬分類: USACO

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

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            亚洲欧美一区二区三区久久| 久久国产免费直播| 青青草原1769久久免费播放| 久久免费精品视频| 亚洲精品无码专区久久同性男| 三级韩国一区久久二区综合| 亚洲精品白浆高清久久久久久 | 99久久国产综合精品女同图片 | 国产精品青草久久久久福利99| 国产99久久久国产精品~~牛| 亚洲成av人片不卡无码久久| 亚洲av日韩精品久久久久久a | 2021久久精品免费观看| 精品久久久久久国产潘金莲| 人妻少妇精品久久| 国产成人久久精品一区二区三区 | 午夜精品久久久久久久久| MM131亚洲国产美女久久| 伊人 久久 精品| 国产精品国色综合久久| 国内精品久久久久影院老司| segui久久国产精品| 蜜桃麻豆www久久| 亚洲精品乱码久久久久久蜜桃图片| 天天综合久久久网| 久久久久国产精品熟女影院| 久久这里只有精品视频99| 国产欧美一区二区久久| 囯产精品久久久久久久久蜜桃| 久久久久亚洲?V成人无码| 精品久久久久久中文字幕| 久久久久99精品成人片试看| 久久久久久久波多野结衣高潮| 国产精品激情综合久久| 久久久久久狠狠丁香| 狠狠色丁香婷综合久久| 久久99精品久久久久久久不卡| 久久国产色AV免费看| 久久久久亚洲AV无码专区体验| 亚洲人成精品久久久久| 日韩AV无码久久一区二区|