• <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當(dāng)然可以了。。

             

            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 閱讀(1227) 評論(0)  編輯 收藏 引用


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


            統(tǒng)計系統(tǒng)
            中文字幕亚洲综合久久| 性欧美大战久久久久久久 | 国产精品久久久久影视不卡| 欧美噜噜久久久XXX| 久久青青草原综合伊人| 久久久久无码中| 久久久久亚洲av无码专区喷水| 2021久久精品国产99国产精品| 国产精品丝袜久久久久久不卡| 2020国产成人久久精品| 国产精品免费看久久久| 久久综合成人网| 国产精品免费福利久久| 久久久久久久免费视频| 久久精品国产一区| 无码国内精品久久人妻蜜桃| 国产精品欧美久久久久天天影视| 久久亚洲精品无码aⅴ大香| 国产L精品国产亚洲区久久| 久久久黄色大片| 伊人色综合久久天天| 无码人妻精品一区二区三区久久久| 久久成人永久免费播放| 99国产欧美精品久久久蜜芽 | 久久久久久综合网天天| 91精品国产91久久久久久| 欧美噜噜久久久XXX| 久久精品国产久精国产果冻传媒 | 久久亚洲私人国产精品| 久久亚洲国产最新网站| 久久精品国产色蜜蜜麻豆| 久久久精品一区二区三区| 久久精品亚洲精品国产色婷| 三级三级久久三级久久| 亚洲精品无码久久久久AV麻豆| 久久一区二区三区免费| 久久本道综合久久伊人| 久久天天日天天操综合伊人av| 久久综合狠狠综合久久激情 | 国产精品成人99久久久久| 99re这里只有精品热久久|