• <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年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            久久777国产线看观看精品| 久久久久久精品免费免费自慰| 日日噜噜夜夜狠狠久久丁香五月 | 99精品久久久久久久婷婷| 秋霞久久国产精品电影院| 久久久久综合国产欧美一区二区| 亚州日韩精品专区久久久| 亚洲精品无码久久久久| 久久91这里精品国产2020| 久久妇女高潮几次MBA| 精品久久综合1区2区3区激情| 精品久久人人爽天天玩人人妻| 久久精品国产亚洲一区二区| 综合久久久久久中文字幕亚洲国产国产综合一区首| 国产成人精品久久| 久久精品无码一区二区三区免费| 久久国产精品99精品国产| 亚洲精品97久久中文字幕无码| 久久久青草久久久青草| 欧洲人妻丰满av无码久久不卡| 性做久久久久久久久久久| 精品人妻伦一二三区久久| 久久精品九九亚洲精品天堂| 色偷偷久久一区二区三区| 欧美粉嫩小泬久久久久久久| 国产精品成人99久久久久| 精品免费tv久久久久久久| 97久久超碰成人精品网站| 久久精品午夜一区二区福利| 国产精品久久新婚兰兰| 日本久久久久久久久久| 久久天天躁狠狠躁夜夜av浪潮 | 久久久久四虎国产精品| 91久久精一区二区三区大全| 国内精品久久久人妻中文字幕| 久久亚洲日韩看片无码| 亚洲精品无码久久久久久| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 欧美午夜A∨大片久久| 久久综合色区| 伊人久久大香线蕉综合影院首页 |