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

            公告

            記錄我的生活和工作。。。
            <2012年11月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            • 隨筆 - 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                       //題目中可能的最大點數 
            int DFN[M];                           //深度優先搜索訪問次序
            int ConnectedComponetNumber=0;        //有向圖強連通分量個數
            int Belong[M];
            int Index=0;
            vector <int> Edge[M];        //鄰接表表示
            vector <int> ConnectedComponent[M];   //獲得強連通分量結果

            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)     //此圖中點的個數,注意是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;
                }
            }
            /*
            此算法正常工作的基礎是圖是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 閱讀(1230) 評論(0)  編輯 收藏 引用

            統計系統
            狠狠色丁香婷婷综合久久来| 国产午夜福利精品久久2021| 三级片免费观看久久| 狠狠色丁香婷婷久久综合五月| 狠狠精品久久久无码中文字幕| 久久99亚洲网美利坚合众国| 久久久99精品一区二区| 97精品久久天干天天天按摩| 欧美精品丝袜久久久中文字幕| 久久精品国产99久久久| 久久精品国产欧美日韩| 国产精品美女久久久久| 囯产精品久久久久久久久蜜桃| 久久精品国产91久久麻豆自制| 国产69精品久久久久APP下载| 国产精品久久久久…| 国产精品乱码久久久久久软件| 久久不见久久见免费影院www日本| 久久久久久曰本AV免费免费| 久久免费大片| 久久综合九色综合97_久久久| 久久国产免费观看精品3| 大香伊人久久精品一区二区| 精品久久久久久久久久中文字幕| 久久精品国产亚洲AV无码偷窥| 国产精品久久久久久久app | 日韩精品无码久久一区二区三| 久久精品嫩草影院| 日产精品久久久久久久性色 | 精品一区二区久久| 97久久精品人妻人人搡人人玩 | 久久精品国产第一区二区| 免费观看久久精彩视频| 久久九九精品99国产精品| 久久丫精品国产亚洲av不卡| 久久w5ww成w人免费| 久久天堂AV综合合色蜜桃网| 欧美黑人激情性久久| 狠狠色丁香久久综合婷婷| 精品无码久久久久久久动漫| 99热都是精品久久久久久|