青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

ZOJ 1311 Network 求割點(diǎn)

A Telephone Line Company (TLC) is establishing a new telephone cable network. They are connecting several places numbered by integers from 1 to N. No two places have the same number. The lines are bidirectional and always connect together two places and in each place the lines end in a telephone exchange. There is one telephone exchange in each place. From each place it is possible to reach through lines every other place, however it need not be a direct connection, it can go through several exchanges. From time to time the power supply fails at a place and then the exchange does not operate. The officials from TLC realized that in such a case it can happen that besides the fact that the place with the failure is unreachable, this can also cause that some other places cannot connect to each other. In such a case we will say the place (where the failure occured) is critical. Now the officials are trying to write a program for finding the number of all such critical places. Help them.


Input

The input consists of several blocks of lines. Each block describes one network. In the first line of each block there is the number of places N < 100. Each of the next at most N lines contains the number of a place followed by the numbers of some places to which there is a direct line from this place. These at most N lines completely describe the network, i.e., each direct connection of two places in the network is contained at least in one row. All numbers in one line are separated by one space. Each block ends with a line containing just 0. The last block has only one line with N = 0.


Output

The output contains for each block except the last in the input one line containing the number of critical places.


Sample Input

5
5 1 2 3 4
0
6
2 1 3
5 4 6 2
0
0


Sample Output

1
2

 

無向連通圖的割點(diǎn)性質(zhì)

1.       考慮根節(jié)點(diǎn)root。如果頂點(diǎn)xy同是root的兒子,那么由此證明x無法通過非root的頂點(diǎn)與y相連,所以當(dāng)根root有數(shù)量>1的兒子時(shí),根是圖的割點(diǎn)。

2.       考慮非根節(jié)點(diǎn)i,再考慮i的某個(gè)兒子節(jié)點(diǎn)j。易知:

          和j相連的白色節(jié)點(diǎn)都將成為j的子孫。

          和j相連的灰色節(jié)點(diǎn)都是j的祖先,由j指向i祖先的邊稱為后向邊

          黑色節(jié)點(diǎn)不可能與j相連。

          如果jj的子孫都不存在指向j的祖先的后向邊,那么刪除頂點(diǎn)i后,頂點(diǎn)ji的祖先或者兄弟無法連通。因此,當(dāng)且僅當(dāng)i的某個(gè)兒子及兒子的子孫均沒有指向i祖先的后向邊時(shí),i是圖的割點(diǎn)。

 

割點(diǎn)的算法

dfs的基礎(chǔ)上增加ancestor數(shù)組,ancestor[k]記錄與kk的子孫相連的輩分最高的祖先所在的深度,當(dāng)ancestor[j]>=deep[j](ji的兒子)時(shí)jj的子孫不存在指向i祖先的后向邊,則i是割點(diǎn)。Son表示頂點(diǎn)k的兒子的數(shù)量。根節(jié)點(diǎn)和非根節(jié)點(diǎn)要區(qū)別對待。

#include <iostream>
#include 
<vector>
using namespace std;

const int MAXN = 110;
vector
< vector<int> > adj;
int cut[MAXN],mark[MAXN],deep[MAXN],ancestor[MAXN];

char *read(char str[],char *p){
    
while(*&& *p!=' ') p++;
    
while(*&& *p==' ') p++;
    
return p;
}

void dfs(int u,int father,int depth){
    
int i,v,son=0;
    mark[u]
=1;
    deep[u]
=ancestor[u]=depth;
    
for(i=0;i<adj[u].size();i++){
        v
=adj[u][i];
        
if(v!=father && mark[v]==1)
            ancestor[u]
=min(ancestor[u],deep[v]);
        
if(mark[v]==0){
            dfs(v,u,depth
+1);
            son
=son+1;
            ancestor[u]
=min(ancestor[u],ancestor[v]);
            
if((father==-1 && son>1|| (father!=-1 && ancestor[v]>=deep[u]))
                cut[u]
=1;
        }

    }

    mark[u]
=2;
}

int main(){
    
int i,x,y,n,cnt;
    
char str[MAXN*10],*p;
    
while(scanf("%d",&n),n){
        adj.assign(n,vector
<int>());
        
while(scanf("%d",&x),x){
            gets(str);
            
for(p=read(str,str);sscanf(p,"%d",&y)!=EOF;p=read(str,p))
                adj[x
-1].push_back(y-1),adj[y-1].push_back(x-1);
        }

        memset(cut,
0,sizeof(cut));
        memset(mark,
0,sizeof(mark));
        
for(i=0;i<n;i++)
            
if(!mark[i]) dfs(i,-1,0);
        
for(cnt=i=0;i<n;i++)
            
if(cut[i]) cnt++;
        printf(
"%d\n",cnt);
    }

    
return 0;
}

posted on 2009-05-27 20:35 極限定律 閱讀(1089) 評論(2)  編輯 收藏 引用 所屬分類: ACM/ICPC

評論

# re: ZOJ 1311 Network 求割點(diǎn) 2009-08-13 23:05 zeus

for(i=0;i<n;i++)
if(!mark[i]) dfs(0,-1,0);
這一句應(yīng)該是dfs(i,-1,0)吧?不過居然都ac  回復(fù)  更多評論   

# re: ZOJ 1311 Network 求割點(diǎn) 2009-08-14 20:55 極限定律

多謝,寫錯(cuò)了。居然能AC確實(shí)有點(diǎn)神奇@zeus  回復(fù)  更多評論   

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美影院午夜播放| 激情成人亚洲| 久久琪琪电影院| 香蕉久久久久久久av网站| 亚洲视频在线看| 亚洲砖区区免费| 亚洲欧美日韩在线不卡| 欧美一区二区三区在线播放| 亚洲高清久久| 小嫩嫩精品导航| 久久久久成人网| 欧美成年视频| 国产精品亚洲аv天堂网| 国产一区高清视频| 亚洲国产婷婷香蕉久久久久久| 日韩午夜av在线| 香蕉成人啪国产精品视频综合网| 欧美专区亚洲专区| 欧美激情在线免费观看| 一区二区欧美在线| 久久香蕉国产线看观看av| 欧美日韩国产精品一区二区亚洲| 国产亚洲成精品久久| 亚洲精品偷拍| 久久久精品动漫| 亚洲毛片在线看| 久久久国产亚洲精品| 欧美日韩网站| 亚洲第一在线综合在线| 欧美一区在线直播| 亚洲精品综合精品自拍| 久久久久网址| 国产视频久久| 亚洲欧美国产精品va在线观看| 欧美大色视频| 欧美影院久久久| 国产精品成人在线观看| 亚洲夫妻自拍| 久久精品系列| 亚洲一区日韩在线| 欧美激情久久久久久| 狠狠操狠狠色综合网| 亚洲欧美日韩人成在线播放| 欧美国产精品久久| 久久精品国产清自在天天线| 国产精品丝袜久久久久久app| 亚洲欧洲日产国产网站| 久久资源在线| 久久婷婷久久| 极品裸体白嫩激情啪啪国产精品| 欧美一区1区三区3区公司| 亚洲欧洲久久| 欧美va亚洲va国产综合| 伊伊综合在线| 牛夜精品久久久久久久99黑人| 亚洲欧美资源在线| 国产日韩精品在线| 久久国产精品网站| 先锋影音国产一区| 国产视频丨精品|在线观看| 亚洲欧美在线磁力| 亚洲永久在线| 国产午夜精品福利| 久久人人精品| 美女图片一区二区| 最近中文字幕日韩精品| 亚洲国产欧美一区二区三区久久| 亚洲日本欧美天堂| 亚洲精选中文字幕| 欧美国产日韩一二三区| 久久视频免费观看| 亚洲人成人一区二区三区| 欧美激情成人在线| 欧美日韩高清免费| 亚洲欧美制服中文字幕| 亚洲欧美在线x视频| 一区二区三区在线免费视频| 美女图片一区二区| 欧美国产大片| 午夜精品福利电影| 久久久久se| 亚洲免费观看高清完整版在线观看熊| 亚洲人线精品午夜| 国产乱码精品一区二区三区忘忧草| 久久久91精品国产一区二区精品| 久久女同精品一区二区| 日韩视频免费大全中文字幕| 亚洲天堂偷拍| 在线播放豆国产99亚洲| 亚洲欧洲日产国码二区| 欧美午夜一区二区三区免费大片| 欧美一区在线直播| 欧美成人精品在线观看| 亚洲欧美日韩在线高清直播| 久久手机免费观看| 午夜精品影院在线观看| 蜜臀av国产精品久久久久| 亚洲一区在线视频| 久久躁日日躁aaaaxxxx| 亚洲一区二区三区色| 久久久久.com| 亚洲欧美中文另类| 欧美激情在线狂野欧美精品| 久久国产精品网站| 欧美日韩国产成人| 农村妇女精品| 国产午夜精品一区理论片飘花| 亚洲国产精品一区二区尤物区| 国产精品免费视频xxxx| 亚洲国产小视频| 激情久久婷婷| 亚洲一区二区在| 一本到高清视频免费精品| 久久久久久一区二区三区| 亚洲一区影院| 欧美日韩精品三区| 亚洲高清资源| 在线成人av| 久久国产99| 久久精品免费观看| 国产精品一区亚洲| 国产精品99久久久久久人 | 国产精品成人午夜| 亚洲国产欧美一区| 91久久久久久| 免费看成人av| 欧美激情精品久久久六区热门 | 狠色狠色综合久久| 午夜精品视频一区| 欧美成人tv| 激情五月婷婷综合| 欧美一二三区精品| 久久精品视频在线看| 国产精品扒开腿爽爽爽视频| 亚洲精品欧美一区二区三区| 亚洲人成毛片在线播放| 欧美成人xxx| 亚洲黄色免费网站| 91久久精品国产91性色tv| 久久久一本精品99久久精品66| 久久久国产精品亚洲一区| 国产一区自拍视频| 久久久久国产精品人| 欧美1级日本1级| 亚洲国产精品成人va在线观看| 久久久精品视频成人| 男女精品网站| 一区二区动漫| 国产精品免费区二区三区观看| 亚洲午夜激情网页| 久久精品成人| 亚洲国产专区| 欧美日韩激情小视频| 亚洲免费一在线| 裸体一区二区| 一区二区三区回区在观看免费视频| 欧美日韩国产高清视频| 亚洲一级在线观看| 久久青草久久| 日韩亚洲成人av在线| 国产精品国码视频| 久久久精品国产99久久精品芒果| 欧美不卡在线视频| 亚洲精品国偷自产在线99热| 欧美日韩一区二| 欧美在线视频网站| 亚洲国产精品久久久久婷婷老年| 一区二区精品国产| 国产日韩精品综合网站| 欧美r片在线| 欧美亚洲自偷自偷| 亚洲精品美女久久久久| 久久在线91| 亚洲午夜视频| 在线观看日韩国产| 国产精品福利网站| 欧美mv日韩mv国产网站| 亚洲女人天堂av| 亚洲精品国产精品国产自| 欧美在线观看视频在线| 99re热这里只有精品视频| 国产综合自拍| 国产精品久久久久免费a∨| 美国十次成人| 欧美在线一二三四区| 一区二区三区精品国产| 亚洲福利电影| 久久尤物视频| 久久er精品视频| 亚洲网站视频| 亚洲美女福利视频网站| 国产综合色产| 国产精品日韩精品| 欧美区日韩区| 欧美mv日韩mv国产网站| 久久精品中文字幕一区| 亚洲欧美日韩综合aⅴ视频| 99v久久综合狠狠综合久久| 欧美黄色小视频| 欧美黄污视频|