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

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(2)

            隨筆分類(65)

            隨筆檔案(65)

            文章檔案(2)

            ACM

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            91亚洲国产成人久久精品网址| 漂亮人妻被中出中文字幕久久| 热re99久久精品国99热| 久久精品国产亚洲av麻豆色欲| 久久精品国产影库免费看| 久久精品国产精品亜洲毛片| 免费无码国产欧美久久18| 精品久久久久久综合日本| 亚洲欧美日韩精品久久亚洲区 | 国产精自产拍久久久久久蜜| 四虎影视久久久免费| 成人久久久观看免费毛片| 久久久WWW成人免费毛片| 狠狠色丁香久久婷婷综合五月 | 亚洲成色WWW久久网站| 国产午夜电影久久| 人妻精品久久久久中文字幕69| 久久精品视屏| 中文字幕亚洲综合久久| 久久午夜无码鲁丝片| 久久99热这里只有精品66| 久久精品国产欧美日韩| 亚洲国产二区三区久久| 伊人久久综合精品无码AV专区| 久久精品综合一区二区三区| 久久九九有精品国产23百花影院| 久久久久久久久久久精品尤物| 久久九九免费高清视频| 色综合久久最新中文字幕| 久久精品国产影库免费看 | 欧美久久综合性欧美| 97精品伊人久久大香线蕉app| 无码国内精品久久人妻| 久久精品一本到99热免费| 天天做夜夜做久久做狠狠| 欧美日韩中文字幕久久久不卡| 久久精品亚洲福利| 综合久久精品色| 中文无码久久精品| 久久A级毛片免费观看| 狠狠狠色丁香婷婷综合久久五月|