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

            O(1) 的小樂

            Job Hunting

            公告

            記錄我的生活和工作。。。
            <2010年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統(tǒng)計

            • 隨筆 - 182
            • 文章 - 1
            • 評論 - 41
            • 引用 - 0

            留言簿(10)

            隨筆分類(70)

            隨筆檔案(182)

            文章檔案(1)

            如影隨形

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            Connected Component 無向圖連通分量

            In graph theory, a connected component of an undirected graph is a subgraph in which any two vertices are connected to each other by paths, and which is connected to no additional vertices. For example, the graph shown in the illustration on the right has three connected components. A graph that is itself connected has exactly one connected component, consisting of the whole graph.

             

            A graph with three connected components.

             

            顯然DFS就足夠判斷了。。BFS當然可以了。。

             

            Code:

            #include "cstdlib"
            #include "cctype"
            #include "cstring"
            #include "cstdio"
            #include "cmath"
            #include "algorithm"
            #include "vector"
            #include "string"
            #include "iostream"
            #include "sstream"
            #include "set"
            #include "queue"
            #include "stack"
            #include "fstream"
            #include "strstream"
            using namespace std;

            #define  M 5000                       //題目中可能的最大點數(shù) 
            int DFN[M];                           //深度優(yōu)先搜索訪問次序
            int ConnectedComponetNumber=0;        //有向圖強連通分量個數(shù)
            int Belong[M];
            int Index=0;
            vector <int> Edge[M];        //鄰接表表示
            vector <int> ConnectedComponent[M];   //獲得強連通分量結(jié)果

            void DFS(int i)
            {
                DFN[i]=Index++;
                Belong[i]=ConnectedComponetNumber;
                ConnectedComponent[ConnectedComponetNumber].push_back(i);
                for (int e=0;e<Edge[i].size();e++)
                {
                    int j=Edge[i][e];
                    if (DFN[j]==-1)
                        DFS(j);
                }
            }

            void solve(int N)     //此圖中點的個數(shù),注意是0-indexed!
            {
                memset(DFN,-1,sizeof(DFN));
                memset(Belong,0,sizeof(Belong));
                for(int i=0;i<N;i++)
                    if(DFN[i]==-1)
                        ConnectedComponetNumber++,DFS(i);
            }
            void reshape(int N)
            {
                cout<<ConnectedComponetNumber<<endl;
                for(int i=0;i<N;i++)
                    cout<<Belong[i]<<" ";
                cout<<endl;
                for(int i=0;i<N;i++)
                    cout<<DFN[i]<<" ";
                cout<<endl;
                for(int i=1;i<=ConnectedComponetNumber;i++)
                {
                    for(int j=0;j<ConnectedComponent[i].size();j++)
                        cout<<ConnectedComponent[i][j]<<" ";
                    cout<<endl;
                }
            }
            /*
            此算法正常工作的基礎(chǔ)是圖是0-indexed的。
            */
            int main()
            {
                Edge[0].push_back(1);
                Edge[1].push_back(0),Edge[1].push_back(2);
                Edge[2].push_back(1);
                int N=6;
                solve(N);
                reshape(N);
                return 0;
            }

            posted on 2010-09-28 10:11 Sosi 閱讀(1226) 評論(0)  編輯 收藏 引用


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


            統(tǒng)計系統(tǒng)
            久久久精品午夜免费不卡| 久久香蕉超碰97国产精品| 久久99精品免费一区二区| 粉嫩小泬无遮挡久久久久久| 色综合久久天天综合| 婷婷久久综合九色综合绿巨人| 国产精品无码久久四虎| 久久免费小视频| 亚洲v国产v天堂a无码久久| 亚洲欧美成人综合久久久| 久久久久国产精品| 99久久无色码中文字幕人妻| 人妻无码αv中文字幕久久 | 久久中文字幕无码专区| 欧美亚洲国产精品久久| 一本色综合网久久| 7国产欧美日韩综合天堂中文久久久久| 性高湖久久久久久久久AAAAA| 国产成年无码久久久久毛片| 91亚洲国产成人久久精品网址| 熟妇人妻久久中文字幕| 色狠狠久久综合网| 日本欧美国产精品第一页久久| 久久99国产精品二区不卡| 久久AV高潮AV无码AV| 欧美午夜A∨大片久久 | 久久综合久久美利坚合众国 | 久久天天躁夜夜躁狠狠躁2022| 亚洲综合精品香蕉久久网97| 99麻豆久久久国产精品免费| 亚洲精品97久久中文字幕无码| 国产精品成人99久久久久| 久久国产精品成人影院| 五月丁香综合激情六月久久| 久久大香萑太香蕉av| 国产精品成人久久久| 亚洲AV伊人久久青青草原| 欧美日韩精品久久久久| 亚洲天堂久久久| 国产成人精品综合久久久| 久久AV高潮AV无码AV|