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

            misschuer

            常用鏈接

            統(tǒng)計

            積分與排名

            百事通

            最新評論

            強(qiáng)連通分量的核心算法 無聊貼下

            /*
            1. 數(shù)組的初始化:當(dāng)首次搜索到點(diǎn)p時,Dfn與Low數(shù)組的值都為到該點(diǎn)的時間。
            2. 堆棧:每搜索到一個點(diǎn),將它壓入棧頂。
            3. 當(dāng)點(diǎn)p有與點(diǎn)p’相連時,如果此時(時間為dfn[p]時)p’不在棧中,p的low值為兩點(diǎn)的low值中較小的一個。
            4. 當(dāng)點(diǎn)p有與點(diǎn)p’相連時,如果此時(時間為dfn[p]時)p’在棧中,p的low值為p的low值和p’的dfn值中較小的一個。
            5. 每當(dāng)搜索到一個點(diǎn)經(jīng)過以上操作后(也就是子樹已經(jīng)全部遍歷)的low值等于dfn值,則將它以及在它之上的元素彈出棧。
               這些出棧的元素組成一個強(qiáng)連通分量。
            6. 繼續(xù)搜索(或許會更換搜索的起點(diǎn),因?yàn)檎麄€有向圖可能分為兩個不連通的部分),直到所有點(diǎn)被遍歷。
            */

            void tarjan(int u) {
                
                dfn[ u ] 
            = low[ u ] = indeu ++;
                S.push(u);
                
                instack[ u ] 
            = true;
                
                
            for(int i = p[ u ]; i != -1; i = e[ i ].neut) {
                    
                          
            int v = e[ i ].v;
                        
            if(dfn[ v ] == -1) {
                            
                            tarjan(v);
                            low[ u ] 
            = min(low[ u ], low[ v ]);
                        }
                        
            else if(instack[ v ])
                            low[ u ] 
            = min(low[ u ], dfn[ v ]);
                }
                
                
            if(low[ u ] == dfn[ u ]) {
                    
                    
            while(true) {
                        
                        
            int tmp = S.top();
                        S.pop();
                        
                        belong[ tmp ] 
            = cnt;
                        instack[ tmp ] 
            = false;
                        
                        
            if(tmp == u) break;
                    }
                    cnt 
            ++;
                }
            }

            posted on 2011-03-31 12:49 此最相思 閱讀(208) 評論(0)  編輯 收藏 引用


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


            亚洲国产精品久久| 少妇久久久久久被弄高潮| 一本大道久久a久久精品综合| 国产精品99久久久久久www| 蜜桃麻豆www久久国产精品| 亚洲AV无码久久精品蜜桃| 色成年激情久久综合| 久久婷婷五月综合成人D啪| 国产日产久久高清欧美一区| 久久久一本精品99久久精品88| 久久人妻少妇嫩草AV无码专区| 久久国产成人午夜aⅴ影院 | 国产精品久久久香蕉| 久久国产色AV免费看| 热99RE久久精品这里都是精品免费| 久久精品国产亚洲麻豆| 亚洲va久久久噜噜噜久久男同| 9191精品国产免费久久| 久久久噜噜噜久久熟女AA片| 久久天天婷婷五月俺也去| 国产精品VIDEOSSEX久久发布| 一本色道久久99一综合| 99久久综合国产精品免费| 久久久久久久综合日本| 久久99精品久久久久久不卡| 日本久久久精品中文字幕| 久久91精品国产91久久小草| 成人妇女免费播放久久久| 久久水蜜桃亚洲av无码精品麻豆| 精品久久久无码21p发布| 国产精品99久久久精品无码| 亚洲精品无码久久毛片| 久久99国产精品成人欧美| 久久久精品视频免费观看| 久久影视综合亚洲| 亚洲色欲久久久久综合网| 久久亚洲精品国产亚洲老地址| 国内精品伊人久久久久妇| 亚洲精品乱码久久久久久按摩 | 一级女性全黄久久生活片免费| 香港aa三级久久三级老师2021国产三级精品三级在 |