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

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

            導航

            統計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            久久精品国产WWW456C0M| 国产精品成人久久久| 国产精品一区二区久久| 99久久国产综合精品网成人影院| 精品无码久久久久久尤物| 国产精品久久久久9999高清| 久久99国产精品久久| 久久天天躁狠狠躁夜夜av浪潮 | 亚洲人成无码久久电影网站| 偷偷做久久久久网站| 久久精品视频网| 亚洲国产天堂久久综合| 久久久久人妻一区二区三区vr| 国产精品欧美亚洲韩国日本久久| 久久久久亚洲av综合波多野结衣 | 久久免费视频1| 久久精品一区二区三区AV| 亚洲日本va中文字幕久久| 久久久久亚洲精品男人的天堂| 久久午夜羞羞影院免费观看| 国产成人精品久久亚洲| 国内精品久久国产大陆| 99久久99久久精品国产片果冻| 久久久精品久久久久久| 国内精品伊人久久久久| 久久夜色精品国产噜噜亚洲AV | 无码精品久久久天天影视| 久久伊人精品青青草原日本| 国内精品人妻无码久久久影院| 久久精品国产亚洲AV久| 久久久久久精品久久久久| 一本久久免费视频| 亚洲国产小视频精品久久久三级| 狠狠人妻久久久久久综合| 久久久综合九色合综国产| 久久人人妻人人爽人人爽| 久久久久久久久久久| 久久精品欧美日韩精品| 久久精品国产亚洲欧美| 久久亚洲春色中文字幕久久久| 激情伊人五月天久久综合|