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

POJ 3352 Road Construction 雙連通分量+縮點

Description

It's almost summer time, and that means that it's almost summer construction time! This year, the good people who are in charge of the roads on the tropical island paradise of Remote Island would like to repair and upgrade the various roads that lead between the various tourist attractions on the island.

The roads themselves are also rather interesting. Due to the strange customs of the island, the roads are arranged so that they never meet at intersections, but rather pass over or under each other using bridges and tunnels. In this way, each road runs between two specific tourist attractions, so that the tourists do not become irreparably lost.

Unfortunately, given the nature of the repairs and upgrades needed on each road, when the construction company works on a particular road, it is unusable in either direction. This could cause a problem if it becomes impossible to travel between two tourist attractions, even if the construction company works on only one road at any particular time.

So, the Road Department of Remote Island has decided to call upon your consulting services to help remedy this problem. It has been decided that new roads will have to be built between the various attractions in such a way that in the final configuration, if any one road is undergoing construction, it would still be possible to travel between any two tourist attractions using the remaining roads. Your task is to find the minimum number of new roads necessary.

Input

The first line of input will consist of positive integers n and r, separated by a space, where 3 ≤ n ≤ 1000 is the number of tourist attractions on the island, and 2 ≤ r ≤ 1000 is the number of roads. The tourist attractions are conveniently labelled from 1 to n. Each of the following r lines will consist of two integers, v and w, separated by a space, indicating that a road exists between the attractions labelled v and w. Note that you may travel in either direction down each road, and any pair of tourist attractions will have at most one road directly between them. Also, you are assured that in the current configuration, it is possible to travel between any two tourist attractions.

Output

One line, consisting of an integer, which gives the minimum number of roads that we need to add.

Sample Input

Sample Input 1
10 12
1 2
1 3
1 4
2 5
2 6
5 6
3 7
3 8
7 8
4 9
4 10
9 10
Sample Input 2
3 3
1 2
2 3
1 3

Sample Output

Output for Sample Input 1
2
Output for Sample Input 2
0

Source


   

    題目大意:給定一個雙向連通的公路網(wǎng),當(dāng)某些公路路段檢修的時候可能會由于該段公路不通,可能會使某些旅游點之間無法通行,求至少新建多少條公路,使得任意對一段公路進行檢修的時候,所有的旅游景點之間仍然暢通;

    分析:檢修某一路段導(dǎo)致公路網(wǎng)不暢通的原因必然是該段公路在圖中是橋(割邊),因此完全暢通的方法就是,加最若干條邊,使圖中不存在橋。先找出圖中所有的雙連通分量,將雙連通分量進行縮點,得到一個樹形圖,求出這個樹形圖中度為1的點的個數(shù),新加邊的條數(shù)即是(度為1的點數(shù)目+1)/2,考慮到題目只要求求度為1的點數(shù)目,因此可以部分縮點,利用并查集,保存每個割邊的頂點,統(tǒng)計每個頂點在并查集中的代表元的度數(shù)即可。
    Sample 1中存在4個雙連通分量:{1},{2,5,6},{3,7,8},{4,9,10},進行縮點之后,求得一個4個節(jié)點的樹形圖,其中一個點的度數(shù)為3,其余3個點的度數(shù)為1,得到需要加的邊的數(shù)目為(3+1)/2=2。

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

const int MAXN = 5001;
vector
< vector<int> > adj;
int cnt,low[MAXN],pre[MAXN],visit[MAXN],degree[MAXN];

void dfs(int u,int v){
    visit[u]
=1;
    pre[u]
=cnt++,low[u]=pre[u];
    
int i,len=adj[u].size();
    
for(i=0;i<len;i++){
        
if(adj[u][i]==v) continue;
        
if(!visit[adj[u][i]]) dfs(adj[u][i],u);
        
if(low[adj[u][i]]<low[u]) low[u]=low[adj[u][i]];
    }

    visit[u]
=2;
}

int main(){
    
int i,j,u,v,n,m,len,ans;
    scanf(
"%d %d",&n,&m);
    adj.assign(n
+1,vector<int>());
    
while(m--){
        scanf(
"%d %d",&u,&v);
        adj[u].push_back(v),adj[v].push_back(u);
    }

    memset(visit,
0,sizeof(visit));
    cnt
=0,dfs(1,1);
    memset(degree,
0,sizeof(degree));
    
for(i=1;i<=n;i++){
        len
=adj[i].size();
        
for(j=0;j<len;j++)
            
if(low[i]!=low[adj[i][j]])
                degree[low[i]]
++;
    }

    
for(ans=i=0;i<=n;i++)
        
if(degree[i]==1) ans++;
    printf(
"%d\n",(ans+1)/2);
    
return 0;
}

posted on 2009-05-29 18:53 極限定律 閱讀(1609) 評論(3)  編輯 收藏 引用 所屬分類: ACM/ICPC

評論

# re: POJ 3352 Road Construction 雙連通分量+縮點 2009-08-03 10:47 路人

11 14
1 2
1 3
1 4
2 5
6 11
2 6
5 6
5 11
3 7
3 8
7 8
4 9
4 10
9 10

你的程序,這組數(shù)據(jù)時錯誤的。。  回復(fù)  更多評論   

# re: POJ 3352 Road Construction 雙連通分量+縮點 2009-08-04 09:46 mythit

@路人
多謝指正  回復(fù)  更多評論   

# re: POJ 3352 Road Construction 雙連通分量+縮點 2011-07-25 19:14 過客

void dfs(int u,int v){
visit[u]=1;
pre[u]=cnt++,low[u]=pre[u];
int i,len=adj[u].size();
for(i=0;i<len;i++){
if(adj[u][i]==v) continue;
if(!visit[adj[u][i]]) dfs(adj[u][i],u);
if(low[adj[u][i]]<low[u]) low[u]=low[adj[u][i]];
}
visit[u]=2;
}
最后一句 visit[u]=2;有什么用啊,求解釋  回復(fù)  更多評論   

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導(dǎo)航

統(tǒng)計

常用鏈接

留言簿(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成人| 亚洲国产高清自拍| 日韩小视频在线观看专区| 欧美成年人在线观看| 亚洲高清av在线| 亚洲狠狠婷婷| 欧美亚州一区二区三区| 亚洲欧美在线网| 午夜一区二区三区在线观看| 国产亚洲午夜| 欧美成在线视频| 欧美精品一线| 久久高清国产| 老司机一区二区三区| 99re这里只有精品6| 国产精品99久久久久久宅男| 国产日韩欧美不卡在线| 欧美成人在线免费视频| 欧美日韩日韩| 蜜臀99久久精品久久久久久软件 | 亚洲欧美日韩在线不卡| 亚洲男人第一av网站| 亚洲国产成人av| 一个色综合av| 在线看视频不卡| 亚洲天堂免费观看| 一色屋精品视频在线观看网站| 亚洲黄色在线观看| 国产精品一二三四| 亚洲激情国产| 国产夜色精品一区二区av| 亚洲国产乱码最新视频| 国产伦理一区| 亚洲精品美女| 一区二区三区在线免费播放| 亚洲精品在线免费观看视频| 国产亚洲一区二区三区在线观看| 91久久夜色精品国产九色| 国产字幕视频一区二区| a4yy欧美一区二区三区| 亚洲二区免费| 久久国产精品久久久久久| 亚洲女同精品视频| 欧美经典一区二区三区| 久久综合婷婷| 国产日韩欧美视频| 宅男噜噜噜66国产日韩在线观看| 亚洲国产成人精品久久| 欧美一级视频精品观看| 午夜伦理片一区| 欧美午夜在线观看| 亚洲黄色在线视频| 亚洲国产婷婷综合在线精品| 欧美一区亚洲二区| 性欧美大战久久久久久久免费观看| 欧美日本国产视频| 欧美黄色影院| 亚洲国产一区二区精品专区| 久久国产精品第一页| 久久精品国产第一区二区三区最新章节| 欧美国产精品人人做人人爱| 欧美刺激午夜性久久久久久久| 一区二区亚洲欧洲国产日韩| 西西人体一区二区| 欧美在线亚洲| 国产亚洲欧洲一区高清在线观看| 亚洲免费在线视频| 久久av二区| 国产无遮挡一区二区三区毛片日本| 亚洲欧美国产三级| 欧美制服丝袜第一页| 国产一区二区三区久久 | 一本到12不卡视频在线dvd| 日韩一区二区精品在线观看| 欧美久久影院| 99精品久久| 欧美一区二区三区免费观看视频| 国产精品久久久久91| 亚洲欧洲99久久| 久久久噜噜噜久久人人看| 国一区二区在线观看| 久久久久欧美精品| 亚洲国产专区校园欧美| 亚洲视频免费观看| 国产精品免费观看视频| 久久精品国产99国产精品澳门| 免费的成人av| 亚洲最黄网站| 国产欧美在线观看一区| 久久精品二区三区| 亚洲黄一区二区三区| 亚洲一区中文| 一区二区三区亚洲| 欧美韩日一区二区三区| 亚洲影院污污.| 欧美jizz19性欧美| 中文成人激情娱乐网| 国产亚洲精品高潮| 美女日韩欧美| 亚洲影院免费| 亚洲国产天堂网精品网站| 亚洲一区二区三区视频播放| 韩国在线视频一区| 欧美破处大片在线视频| 性久久久久久| 99国产精品自拍| 久久资源在线| 亚洲一区二区在线免费观看| 韩国v欧美v日本v亚洲v| 欧美屁股在线| 久久综合成人精品亚洲另类欧美| 亚洲裸体俱乐部裸体舞表演av| 久久久激情视频| 亚洲午夜91| 最新国产乱人伦偷精品免费网站| 国产精品久久久久影院色老大 | 国产欧美成人| 欧美日本一道本| 久久先锋资源| 午夜一区不卡| 在线亚洲欧美| 亚洲精品免费网站| 麻豆精品在线视频| 久久精品在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲国产视频a| 黄色国产精品| 国产一区二区三区黄视频| 欧美午夜激情小视频| 欧美激情国产高清| 免费影视亚洲| 老司机精品导航| 久久精品亚洲一区二区三区浴池| 亚洲视频一区| 一区二区电影免费在线观看| 亚洲欧洲一级| 亚洲六月丁香色婷婷综合久久| 亚洲国产高清aⅴ视频| 麻豆精品91| 欧美成人精品三级在线观看| 久久久久国产一区二区三区四区| 香蕉成人啪国产精品视频综合网| 亚洲视频中文字幕| 亚洲网在线观看| 亚洲自拍偷拍福利| 午夜精品亚洲| 久久国产精品亚洲va麻豆| 久久www免费人成看片高清| 性欧美精品高清| 欧美综合第一页| 久久亚洲综合| 免费人成精品欧美精品| 欧美成人一区二区三区片免费| 免费在线欧美视频| 亚洲国产天堂久久综合| 最新国产成人av网站网址麻豆| 亚洲精品123区| 一本久久综合亚洲鲁鲁五月天| 亚洲午夜精品一区二区| 亚洲专区在线| 久久久噜久噜久久综合| 久久综合亚洲社区| 欧美精品系列| 国产精品任我爽爆在线播放| 国产午夜亚洲精品羞羞网站| 国产综合婷婷| 亚洲美女视频在线免费观看| 亚洲已满18点击进入久久| 久久国产精品一区二区三区四区 | 亚洲欧洲精品天堂一级 | 国产精品女主播| 国产在线不卡视频| 亚洲国产精品va在线观看黑人| 亚洲精品视频免费在线观看| 亚洲欧美高清| 美女国产一区| 一区二区欧美日韩| 久久精品国产综合精品| 欧美精品一区二区三区四区 | 欧美精品久久一区| 国产欧美一级| 日韩午夜三级在线| 久久精品一区二区三区不卡牛牛| 亚洲大胆视频| 午夜一级久久| 欧美日韩亚洲三区| 伊人激情综合| 欧美亚洲日本网站| 亚洲第一二三四五区| 亚洲综合成人婷婷小说| 你懂的视频欧美| 国产婷婷成人久久av免费高清 | 国产欧美一区二区三区久久| 亚洲激情网址| 久久婷婷麻豆| 亚洲在线一区二区三区| 欧美理论片在线观看| 狠狠色综合播放一区二区| 亚洲愉拍自拍另类高清精品| 欧美sm重口味系列视频在线观看|