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

            Ural 1033 Labyrinth

            Accepted
            0.015 217 KB

            1033. Labyrinth

            Time Limit: 1.0 second
            Memory Limit: 16 MB
            Administration of the labyrinth has decided to start a new season with new wallpapers. For this purpose they need a program to calculate the square of the walls inside the labyrinth. This job is just for you!
            The labyrinth is represented by a matrix N×N (3 ≤ N ≤ 33, you see, ‘3’ is a magic digit!). Some matrix cells contain a dot character (‘.’) that denotes an empty square. Other cells contain a diesis character (‘#’) that denotes a square filled by monolith block of stone wall. All squares are of the same size 3×3 meters.
            The walls are constructed around the labyrinth (except for the upper left and lower right corners, which are used as entrances) and on the cells with a diesis character. No other walls are constructed. There always will be a dot character at the upper left and lower right corner cells of the input matrix.
            Problem illustration
            Your task is to calculate the square of visible part of the walls inside the labyrinth. In other words, the square of the walls' surface visible to a visitor of the labyrinth. Note that there's no holes to look or to move through between any two adjacent blocks of the wall. The blocks are considered to be adjacent if they touch each other in any corner. See picture for an example: visible walls inside the labyrinth are drawn with bold lines. The height of all the walls is 3 meters.

            Input

            The first line of the input contains the single number N. The next N lines contain N characters each. Each line describes one row of the labyrinth matrix. In each line only dot and diesis characters will be used and each line will be finished with a new line character. There will be no spaces in the input.

            Output

            Your program should print to the output a single integer — the exact value of the square of the wallpaper needed.

            Sample

            input output
            5
                        .....
                        ...##
                        ..#..
                        ..###
                        .....
                        
            198
                        

            搜索題:注意的要從兩個入口處搜索,防止中間斷開了
            wa了兩次 找不出錯誤,search(i+1,j)寫成search(i+1,j+1);
            #include<iostream>
            #include
            <cstring>
            using namespace std;

            int const maxSize=35;

            class ural1033
            {
            public:
                ural1033(){ size
            =0; memset(f,0,sizeof f); }
                
            void input();
                
            void print();
                
            void search(int i, int j);
                
            int size;
                
            int getn(){return N;}
            private:
                
            char a[maxSize][maxSize];
                
            bool f[maxSize][maxSize];
                
            int N;
            };

            void ural1033::input()
            {
                 cin
            >>N;
                 
            int i,j;
                 
            for(i=1; i<=N; i++)
                    
            for(j=1; j<=N; j++)
                        cin
            >>a[i][j];
                
            for(i=2; i<=N+1; i++)a[0][i]='#';
                
            for(i=2; i<=N+1; i++)a[i][0]='#';
                
            for(i=1; i<=N-1; i++)a[N+1][i]='#';
                
            for(i=1; i<=N-1; i++)a[i][N+1]='#';

            }

            void ural1033:: search(int i, int j)
            {
                
            if(i<1||i>N||j<1||j>N||a[i][j]=='#'||f[i][j]==1)return ;
                f[i][j]
            =1;
                
            if(a[i-1][j]=='#')size++;
                   
            else search(i-1,j);
                
            if(a[i][j-1]=='#')size++;
                   
            else search(i,j-1);
                
            if(a[i][j+1]=='#')size++;
                   
            else search(i,j+1);
                
            if(a[i+1][j]=='#')size++;
                   
            else search(i+1,j);
            }

            void ural1033::print()
            {
                 
            for(int i=0; i<=N+1; i++,cout<<endl)
                 
            for(int j=0; j<=N+1; j++)
                 cout
            <<a[i][j]<<' ';
                 cout
            <<endl<<endl;
                 
                 
            for(int i=0; i<=N+1; i++,cout<<endl)
                 
            for(int j=0; j<=N+1; j++)
                 cout
            <<f[i][j]<<' ';
            }

            int main()
            {
                ural1033 ural;
                ural.input();
                
                ural.search(
            1,1);
                ural.search(ural.getn(),ural.getn());
                
                cout
            <<ural.size*9<<endl;
                
                system(
            "pause");
                
            return 0;
            }

            posted on 2010-06-24 23:02 田兵 閱讀(409) 評論(0)  編輯 收藏 引用 所屬分類: URAL

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

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            久久精品无码一区二区WWW| 日韩人妻无码一区二区三区久久99| 久久亚洲国产精品成人AV秋霞| 国产精品嫩草影院久久| 亚洲午夜久久久| 久久99精品国产99久久| 一级a性色生活片久久无少妇一级婬片免费放 | 久久AAAA片一区二区| 亚洲国产精品无码久久SM| 日本精品久久久久中文字幕| 亚洲综合久久夜AV | 久久综合综合久久狠狠狠97色88| 久久国产热这里只有精品| 久久久久免费精品国产| 99久久综合狠狠综合久久| 久久精品国产亚洲AV高清热| 久久这里只有精品首页| 亚洲AV日韩AV天堂久久| 亚洲国产综合久久天堂| 亚洲一本综合久久| 伊人久久大香线焦AV综合影院 | 热久久视久久精品18| 国产精品99久久久久久董美香| 7777久久久国产精品消防器材| 国内精品欧美久久精品| 99久久精品国产一区二区蜜芽| 国产成人精品白浆久久69| 中文字幕人妻色偷偷久久 | 麻豆AV一区二区三区久久| 无码任你躁久久久久久久| 久久人人爽人人精品视频| 久久久精品久久久久久| 久久久久国产精品三级网| 久久精品国产亚洲7777| 国产99久久久国产精免费| 国产成人精品久久亚洲| 国产精品成人99久久久久 | 精品久久无码中文字幕| 999久久久无码国产精品| 久久综合久久久| 久久精品无码一区二区app|