• <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)
            国内精品久久久久久久久电影网 | 99久久精品免费| 国产精品青草久久久久婷婷| 99久久国产热无码精品免费| 国产福利电影一区二区三区久久久久成人精品综合 | 香蕉aa三级久久毛片| 久久精品国产亚洲AV香蕉| 精品国产乱码久久久久久郑州公司| 91久久婷婷国产综合精品青草| 久久亚洲国产成人影院网站| 久久久久人妻一区精品色| 久久精品一区二区影院| 久久精品国产网红主播| 女同久久| 99久久亚洲综合精品网站| 无码人妻久久一区二区三区免费 | 国产精品久久久久久五月尺| 亚洲国产一成人久久精品 | 少妇人妻88久久中文字幕| 久久精品国产WWW456C0M| 久久国产成人精品麻豆| 久久综合香蕉国产蜜臀AV| 国产欧美久久久精品影院| 久久男人AV资源网站| 久久精品草草草| 91久久婷婷国产综合精品青草| 亚洲欧美成人综合久久久| 亚洲午夜无码AV毛片久久| 久久久综合香蕉尹人综合网| 99久久精品国产一区二区| 国产精品一区二区久久精品| 久久久国产乱子伦精品作者| 精品久久久久成人码免费动漫| 亚洲综合久久夜AV | 亚洲精品成人网久久久久久| 久久久久无码精品国产app| 国产成人精品综合久久久| 国产精品成人无码久久久久久 | 国产精品视频久久久| 久久亚洲国产精品一区二区| 成人国内精品久久久久影院VR|