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

            The Fourth Dimension Space

            枯葉北風(fēng)寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢(mèng)令

            POJ 1111-Image Perimeters DFS深度優(yōu)先搜索

            以前做過POJ上的3620,題意大概是要你求出相鄰的X有多少個(gè),而這個(gè)題呢,則是要求你求出整個(gè)互相鄰接的X所夠成的周長(zhǎng);
            我個(gè)人認(rèn)為,這兩道題有異曲同工之妙。
            這道題和3620不同的是,我們不能將所有與X相鄰的結(jié)點(diǎn)都?jí)簵#沁x擇X結(jié)點(diǎn)壓棧,為什么呢?我想了想,因?yàn)榇祟}的周長(zhǎng)是在你考察X的基礎(chǔ)上向四面八方試探而求出的。你最好是立足與X結(jié)點(diǎn),由于對(duì)壓棧元素進(jìn)行了限制,那么在進(jìn)入dfs遞歸的時(shí)候也就不用大費(fèi)周章的去判斷
            if(visit[i][j]==0)了,因?yàn)閴簵5脑乇仨毷菦]有考察過的X結(jié)點(diǎn);當(dāng)然這只不過是基于自己的個(gè)人習(xí)慣而已,我想,即使你不判斷壓棧元素,應(yīng)該也能做出來吧,只不過這樣似乎并不符合我們的思維習(xí)慣而已;
            另外做這個(gè)題目的時(shí)候還遇到了一個(gè)小問題,就是cin.ignore()的使用,再輸入r,c,x,y的值之后,由于回車符不可能被整型變量吃掉,所以它會(huì)滯留在緩沖區(qū),使得在輸入字符時(shí)回車符優(yōu)先進(jìn)入map數(shù)組,而且每一行之后都有一個(gè)回車符,所以這個(gè)cin.ignore()的位置也是不能改變的。
            當(dāng)讓還有個(gè)有意思的地方,就是這個(gè)題要用向量來存儲(chǔ)考察的方向,這樣的話一個(gè)循環(huán)就可以考察完所有的方向,不用費(fèi)力把所有的方向都寫一遍了,這是一個(gè)很不錯(cuò)的方法,宜借鑒之;
            最后要感謝一下網(wǎng)路上分享代碼的大牛們,正是由于參考了你們的代碼才使我有所進(jìn)步;

            #include<iostream>
            #include
            <cmath>
            #include
            <cstdio>
            using namespace std;
            #define MAX 100

            char map[MAX][MAX];
            int visit[MAX][MAX];
            int sum;
            int r,c;
            int path[8][2]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};



            void dfs(int a,int b)
            {

                visit[a][b]
            =1;
                
            int i;
                
            for(i=0;i<8;i++)
                
            {
                    
            int x=a+path[i][0];
                    
            int y=b+path[i][1];

                    
            if(x>=1&&x<=r&&y>=1&&y<=c)
                    
            {

                        
            if(map[x][y]=='X'&&visit[x][y]==0)
                            dfs(x,y);
                            
                        
            else if(map[x][y]=='.'&&(x==a||y==b))
                        
            {
                            sum
            ++;

                        }


                    }

                    
            else if(x==a||y==b)
                        sum
            ++;
                }


            }



            int main ()

            {

                
            int x,y;
                
            int i,j;
                
            while(scanf("%d%d%d%d",&r,&c,&x,&y))
                
            {
                    
            for(i=1;i<=r;i++)
                        
            for(j=1;j<=c;j++)
                        
            {

                            visit[i][j]
            =0;
                        }

                    
                    
            for(i=1;i<=r;i++)
                    
            {
                        cin.ignore();
                        
            for(j=1;j<=c;j++)
                        
            {
                            scanf(
            "%c",&map[i][j]);
                        }


                    }

                    
                    sum
            =0;
                    
            if(r==0&&c==0&&x==0&&y==0)
                        
            break;
                    dfs(x,y);
                    printf(
            "%d\n",sum);
                }

            return 0;
            }




             

            posted on 2009-03-12 20:47 abilitytao 閱讀(1910) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: POJ 1111-Image Perimeters DFS深度優(yōu)先搜索 2009-07-09 11:12 非要有姓名嗎

            題目好像有小問題。根據(jù)題目所給的條件(沒有完全封閉的內(nèi)孔)也可以邊界追蹤的。經(jīng)試驗(yàn),WA。  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            一极黄色视频久久网站| 国产精品美女久久久m| 伊人久久大香线蕉综合热线| 亚洲中文字幕久久精品无码喷水| 亚洲狠狠婷婷综合久久久久| 久久香蕉一级毛片| 欧美亚洲国产精品久久高清| 久久96国产精品久久久| 国产精品嫩草影院久久| 亚洲国产精品成人久久| 久久婷婷五月综合97色直播| 亚洲AV无码久久精品成人 | 久久久久99精品成人片| 亚洲AV日韩精品久久久久久 | 无码精品久久一区二区三区| 国产精品99久久久精品无码| 99久久精品这里只有精品| 久久天天日天天操综合伊人av| 久久精品国产只有精品2020| 精品国产99久久久久久麻豆| 亚洲国产精品成人久久蜜臀 | 久久国产精品成人片免费| 色偷偷88888欧美精品久久久 | 无码国内精品久久人妻麻豆按摩| 久久99热只有频精品8| 一极黄色视频久久网站| 国产综合免费精品久久久| 国产精品视频久久| 久久国产精品成人片免费| 色婷婷综合久久久久中文| 亚洲日本久久久午夜精品| 久久亚洲高清综合| 香蕉99久久国产综合精品宅男自 | 成人妇女免费播放久久久| 亚洲国产精品无码久久久秋霞2 | 久久综合久久综合久久| 亚洲欧美一级久久精品| 欧美日韩精品久久久久| 色综合久久综精品| 青青草原综合久久大伊人精品| 99久久人妻无码精品系列蜜桃|