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

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


   

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

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

你的程序,這組數據時錯誤的。。  回復  更多評論   

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

@路人
多謝指正  回復  更多評論   

# 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;有什么用啊,求解釋  回復  更多評論   

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

導航

統計

常用鏈接

留言簿(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>
            亚洲第一区在线观看| 永久域名在线精品| 亚洲综合三区| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲午夜电影| 亚洲性视频网址| 午夜日韩激情| 久久久99久久精品女同性| 久久久噜噜噜| 亚洲国产国产亚洲一二三| 亚洲乱码国产乱码精品精98午夜| 夜夜嗨av一区二区三区网站四季av| 亚洲午夜羞羞片| 久久久久久精| 欧美日本韩国一区| 国产精品卡一卡二| 国产一区二区三区四区hd| 亚洲经典三级| 亚洲少妇在线| 久久在线视频| 亚洲精品日韩综合观看成人91| 亚洲午夜国产成人av电影男同| 午夜天堂精品久久久久| 老司机亚洲精品| 国产精品美女久久久| 亚洲福利国产| 久久福利电影| 亚洲高清不卡一区| 亚洲免费在线电影| 欧美诱惑福利视频| 91久久久在线| 久久久国产精彩视频美女艺术照福利| 欧美激情一二区| 国产一区二区在线免费观看| 91久久久久| 久久精品国产精品亚洲综合| 91久久精品日日躁夜夜躁国产| 久久精品人人做人人综合| 欧美日韩免费高清一区色橹橹| 国产精品一区二区男女羞羞无遮挡| 亚洲激情精品| 久久久久久久激情视频| 亚洲青涩在线| 麻豆久久婷婷| 国语自产精品视频在线看一大j8| 亚洲综合二区| 99v久久综合狠狠综合久久| 久久久久国色av免费观看性色| 欧美日韩视频一区二区| 亚洲国产精品成人综合| 欧美在线一区二区三区| 9人人澡人人爽人人精品| 欧美国产日韩精品免费观看| 国产欧美视频在线观看| 亚洲欧美日韩成人高清在线一区| 亚洲国产另类久久久精品极度| 欧美一区国产二区| 国产日韩视频一区二区三区| 亚洲欧美影院| 亚洲欧美日韩成人| 国产欧美精品一区| 欧美一二三区在线观看| 亚洲无限av看| 国产精品亚洲成人| 欧美一区亚洲二区| 香蕉久久夜色精品国产使用方法| 国产免费观看久久黄| 欧美一级视频| 午夜一区二区三视频在线观看| 亚洲欧美资源在线| 国产精品久久久爽爽爽麻豆色哟哟| 日韩亚洲欧美一区| 亚洲乱码久久| 国产精品丝袜xxxxxxx| 香蕉成人啪国产精品视频综合网| 一本色道久久综合亚洲精品不卡| 欧美日韩精品在线| 亚洲欧美在线网| 久久er99精品| 亚洲精品一区在线| 99精品欧美| 国产一区香蕉久久| 亚洲福利电影| 欧美成人一区二区三区片免费| 亚洲人永久免费| 亚洲精品久久久久中文字幕欢迎你| 欧美日韩另类一区| 欧美一区二区免费观在线| 久久久久久久欧美精品| 99热这里只有精品8| 亚洲女女做受ⅹxx高潮| 亚洲第一精品福利| 亚洲人午夜精品| 国产精品久久久久影院亚瑟 | 亚洲国产精选| 在线观看亚洲专区| 亚洲免费福利视频| 国产伦精品一区二区三| 久久久国产精品一区| 欧美va亚洲va国产综合| 亚洲一区二区三区777| 亚洲一区国产精品| 亚洲高清在线精品| 亚洲一区欧美| 亚洲免费成人av| 欧美伊人久久| 亚洲欧美日韩人成在线播放| 久久久精品日韩| 亚洲免费影院| 女女同性女同一区二区三区91| 一区二区三区日韩精品视频| 久久青草欧美一区二区三区| 欧美屁股在线| 欧美国产精品久久| 国产日韩欧美在线播放| 亚洲国产另类 国产精品国产免费| 国产精品欧美一区喷水| 亚洲国产精品99久久久久久久久| 国产一区二区三区成人欧美日韩在线观看 | 在线精品视频一区二区| 一区二区三区成人| 99成人精品| 欧美韩国日本一区| 欧美大片va欧美在线播放| 国产综合av| 亚洲欧美在线观看| 亚洲综合导航| 国产精品一区在线观看你懂的| 亚洲伦理精品| 9l国产精品久久久久麻豆| 美女日韩欧美| 免费试看一区| 亚洲国产精品久久| 猛男gaygay欧美视频| 久久综合久久综合久久综合| 国产亚洲一区二区三区| 性欧美暴力猛交69hd| 久久精品国产亚洲一区二区| 国产精品视频午夜| 亚洲欧美日韩国产一区| 欧美一区亚洲一区| 国产日韩欧美成人| 久久精品国产99国产精品| 久久一区国产| 国内精品免费午夜毛片| 久久激情婷婷| 亚洲欧美久久| 国产午夜精品全部视频在线播放| 欧美一区激情视频在线观看| 久久精品二区| 亚洲国产天堂久久国产91| 欧美激情一区| 在线一区二区三区四区五区| 国产精品成人免费| 亚洲综合国产| 欧美国产视频在线| 亚洲高清在线| 一本久道久久综合中文字幕| 亚洲天堂视频在线观看| 国产精品久久久久9999| 欧美一区二区三区播放老司机| 久久人人超碰| 99re8这里有精品热视频免费| 欧美日韩免费观看一区三区 | 国产在线精品自拍| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产你懂的| 午夜久久久久久久久久一区二区| 国产欧美1区2区3区| 久久人91精品久久久久久不卡| 亚洲国产你懂的| 欧美影院在线播放| 亚洲精品久久久久久久久| 欧美日韩一区视频| 欧美一区二区三区四区在线观看| 欧美jizz19hd性欧美| 亚洲婷婷综合久久一本伊一区| 国产精品理论片在线观看| 久久精品国语| 99热这里只有精品8| 久久精品视频va| 一区二区三区四区精品| 激情综合色丁香一区二区| 欧美视频免费在线| 欧美成va人片在线观看| 性欧美8khd高清极品| 宅男噜噜噜66国产日韩在线观看| 免费人成精品欧美精品| 久久国产精品黑丝| 99精品免费视频| 国产网站欧美日韩免费精品在线观看 | 国产精品va在线| 久久久精品999| 亚洲欧美日韩综合aⅴ视频| 欧美激情中文不卡| 美乳少妇欧美精品| 亚洲欧洲精品一区二区三区不卡| 欧美黄色一级视频| 久久综合精品国产一区二区三区| 亚洲女人天堂av|