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

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>
            欧美777四色影视在线| 亚洲国产另类精品专区| 夜夜嗨av一区二区三区| 欧美精品一区二区三区一线天视频 | 久久青草久久| 久久综合九色| 亚洲卡通欧美制服中文| 亚洲区在线播放| 国产精品v欧美精品v日本精品动漫| 一区二区三区 在线观看视| 一本一本久久a久久精品综合麻豆| 国产精品超碰97尤物18| 久久国产欧美精品| 理论片一区二区在线| 亚洲美女在线视频| 宅男噜噜噜66一区二区| 国产一区香蕉久久| 亚洲国产精品精华液2区45| 欧美日韩综合| 久久久精品网| 欧美日韩国产在线一区| 久久精品一二三区| 欧美精品一二三| 欧美中文字幕在线视频| 免费成人网www| 欧美一区二区日韩| 欧美激情精品久久久久久蜜臀| 亚洲欧美激情四射在线日 | 亚洲国产一区二区a毛片| 国产精品一区三区| 亚洲国产成人91精品 | 一区二区三区导航| 亚洲一区精品电影| 免费不卡在线观看| 在线视频精品一区| 久久精视频免费在线久久完整在线看 | 久久香蕉精品| 亚洲影院高清在线| 欧美大片免费| 麻豆精品视频在线观看视频| 欧美午夜精品久久久久免费视| 久久久www成人免费毛片麻豆| 欧美伦理影院| 美女爽到呻吟久久久久| 国产精品尤物| 制服丝袜激情欧洲亚洲| 亚洲激情小视频| 久久久99免费视频| 久久国产精品久久久| 欧美日韩在线一区二区三区| 亚洲国产精品久久久久秋霞影院| 国产日本欧美一区二区| 一区二区高清视频在线观看| 亚洲久久成人| 牛人盗摄一区二区三区视频| 久久精品国产99国产精品| 欧美视频专区一二在线观看| 亚洲人精品午夜在线观看| 亚洲国产日日夜夜| 久久美女性网| 免费成人黄色片| 韩国一区二区三区在线观看| 性视频1819p久久| 久久国产精品久久久久久久久久| 国产精品日韩在线观看| 亚洲自拍另类| 欧美一区亚洲一区| 国产在线日韩| 久久久99久久精品女同性| 久久综合给合久久狠狠狠97色69| 国内一区二区在线视频观看| 久久精品国产久精国产爱 | 91久久在线播放| 女人天堂亚洲aⅴ在线观看| 亚洲大片在线| 亚洲作爱视频| 国产精品激情偷乱一区二区∴| 99国产精品久久| 亚洲砖区区免费| 国产日韩欧美在线观看| 欧美在线看片a免费观看| 嫩草影视亚洲| 亚洲免费观看高清在线观看 | 国产精品国产一区二区| 午夜精品www| 狂野欧美性猛交xxxx巴西| 亚洲高清视频在线观看| 欧美激情第一页xxx| 99re成人精品视频| 久久精品国产清高在天天线| 在线免费观看视频一区| 欧美精品日韩综合在线| 亚洲欧美电影在线观看| 久久综合婷婷| 亚洲少妇中出一区| 国产综合激情| 欧美激情中文不卡| 午夜精品久久久久久久蜜桃app| 久久精选视频| 一本色道久久综合亚洲精品高清| 国产精品久久久久久久久久直播| 久久国产精品亚洲77777| 亚洲国产欧美一区二区三区同亚洲| 中文国产成人精品| 国产主播一区二区三区四区| 欧美激情在线狂野欧美精品| 午夜在线a亚洲v天堂网2018| 亚洲国产欧洲综合997久久| 欧美亚洲一区二区在线| 亚洲电影在线| 国产精品入口福利| 免费观看一区| 羞羞漫画18久久大片| 亚洲国产精品v| 久久久7777| 亚洲综合日韩在线| 亚洲看片网站| 亚洲第一在线视频| 国产午夜精品久久| 欧美日韩在线免费| 免费欧美在线视频| 欧美在线播放一区二区| 亚洲无玛一区| 99re成人精品视频| 亚洲国产精品小视频| 鲁大师成人一区二区三区| 午夜日韩电影| 亚洲一区二区三区免费观看 | 亚洲一区二区成人在线观看| 亚洲第一主播视频| 国产一区二区三区久久 | 国产一区二区三区久久精品| 欧美日韩国产影院| 欧美日本韩国一区| 欧美成人免费在线| 蜜臀va亚洲va欧美va天堂| 欧美伊人影院| 久久国产福利| 欧美一级日韩一级| 翔田千里一区二区| 亚洲一区二区视频在线观看| 一区二区三区www| 亚洲免费福利视频| 99国产一区二区三精品乱码| 亚洲免费观看视频| 99国产精品久久久久老师| 日韩视频免费在线观看| 亚洲美女av黄| 国产精品99久久99久久久二8| 亚洲免费观看高清完整版在线观看| 亚洲人成网站在线播| 亚洲日韩视频| 亚洲香蕉成视频在线观看| 亚洲一区不卡| 羞羞漫画18久久大片| 久久精品色图| 免播放器亚洲一区| 欧美激情一区二区三区全黄| 欧美日韩精品一区二区| 欧美日韩在线第一页| 国产精品一区二区久久国产| 国产一区二区三区无遮挡| 激情久久影院| 亚洲美女色禁图| 午夜精品亚洲| 久久综合久色欧美综合狠狠| 欧美国产第二页| 99在线热播精品免费99热| 亚洲欧美日韩在线观看a三区 | 亚洲一区制服诱惑| 久久成人精品无人区| 欧美va亚洲va国产综合| 欧美午夜一区二区三区免费大片| 国产视频亚洲精品| 亚洲第一色中文字幕| 亚洲午夜精品国产| 久久久久久亚洲精品不卡4k岛国| 亚洲大黄网站| 亚洲欧美日韩综合国产aⅴ| 久久一区二区三区av| 欧美日韩国产综合在线| 红桃视频一区| 亚洲一区观看| 欧美国产精品日韩| 亚洲香蕉伊综合在人在线视看| 久久在线观看视频| 国产精品婷婷午夜在线观看| 亚洲黄色性网站| 欧美中文在线观看| 亚洲精品日韩激情在线电影 | 欧美高清日韩| 欧美在线一区二区| 欧美午夜在线观看| 亚洲三级影院| 欧美mv日韩mv国产网站app| 亚洲资源在线观看| 国产精品www| 夜夜嗨一区二区| 亚洲第一免费播放区| 欧美影院视频|