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

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 極限定律 閱讀(1613) 評論(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年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

導航

統計

常用鏈接

留言簿(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>
            久久久久久国产精品mv| 亚洲欧美视频一区| 免费在线亚洲| 久久精品国产亚洲5555| 国产婷婷色一区二区三区四区| 西西人体一区二区| 亚洲欧美日韩一区| 国外成人性视频| 欧美国产1区2区| 欧美人成在线| 亚洲一区亚洲二区| 一区二区三区www| 国产精品午夜在线| 欧美专区在线观看一区| 欧美中文字幕在线视频| 亚洲国产精品电影在线观看| 欧美黄色一级视频| 欧美日韩成人在线视频| 亚洲欧美色婷婷| 久久久水蜜桃| 中文亚洲字幕| 久久精品一区二区三区不卡| 亚洲欧洲日本国产| 99热免费精品在线观看| 国产麻豆成人精品| 欧美大片在线看免费观看| 欧美日韩国产页| 久久久久国色av免费看影院 | 亚洲影音先锋| 欧美一级成年大片在线观看| 亚洲高清免费视频| 日韩天堂在线观看| 好吊日精品视频| 亚洲精品一区二区三区99| 国产精品视频最多的网站| 欧美国产视频日韩| 国产精品专区h在线观看| 亚洲国产福利在线| 国产精品日本| 亚洲国产精品va在看黑人| 国产精品久久久久永久免费观看 | 欧美一进一出视频| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲一级黄色片| 久久综合九色综合欧美就去吻| 亚洲午夜精品一区二区三区他趣| 久久久久国产精品厨房| 亚洲欧美日韩精品久久奇米色影视 | 一区二区三区鲁丝不卡| 久久国产免费看| 亚洲欧美日韩一区在线观看| 欧美成人午夜77777| 久久久久国产精品一区| 国产精品v亚洲精品v日韩精品 | 一区二区三区四区蜜桃| 1769国产精品| 欧美一区永久视频免费观看| 亚洲一区影音先锋| 欧美激情片在线观看| 免费欧美网站| 在线精品视频一区二区| 久久国产99| 久久精品在线观看| 国产免费一区二区三区香蕉精| av成人毛片| 亚洲图片欧美午夜| 欧美日韩一区三区| 日韩午夜电影在线观看| 99综合在线| 欧美日韩精品欧美日韩精品一| 亚洲国产电影| 亚洲精品国产精品国产自| 久久综合久久综合九色| 男人的天堂亚洲| 亚洲国产精品久久久久婷婷884| 久久久.com| 欧美成人首页| 日韩亚洲视频| 国产精品爱啪在线线免费观看| 99热在这里有精品免费| 亚洲一区二区伦理| 国产精品一区视频网站| 久久精品国产第一区二区三区最新章节| 亚洲欧美在线磁力| 国产美女精品| 久久成人精品| 欧美激情精品久久久久久黑人| 亚洲精品视频免费观看| 欧美午夜理伦三级在线观看| 午夜精品网站| 欧美h视频在线| 日韩亚洲欧美一区| 国产精品视频成人| 欧美一级日韩一级| 欧美福利一区二区三区| 一本色道久久加勒比精品| 国产精品伦一区| 久久精品成人| 亚洲国内精品在线| 亚洲男人第一网站| 激情婷婷久久| 欧美日韩一二三四五区| 欧美在线观看你懂的| 欧美激情在线| 亚洲精选在线| 日韩午夜在线观看视频| 国产精品视频99| 蜜桃伊人久久| 亚洲欧美一区二区视频| 欧美成人精品一区二区三区| 亚洲婷婷在线| 在线精品亚洲| 国产精品看片你懂得| 久热精品视频在线观看一区| 一区二区三区视频观看| 老牛嫩草一区二区三区日本 | 欧美三区不卡| 久久综合一区| 亚洲综合国产| 亚洲人成绝费网站色www| 欧美在线视频在线播放完整版免费观看| 尤妮丝一区二区裸体视频| 欧美日韩一二区| 久热精品视频在线免费观看| 亚洲欧美日韩国产另类专区| 亚洲欧洲一区二区天堂久久 | 日韩亚洲在线| 精品91在线| 国产欧美1区2区3区| 欧美日韩成人精品| 免费日韩成人| 久久精品99国产精品酒店日本| 亚洲视频一区在线观看| 亚洲国产日韩一区二区| 久久久精品2019中文字幕神马| 亚洲新中文字幕| 亚洲啪啪91| 亚洲国产精品视频一区| 国内外成人在线| 国产亚洲亚洲| 国产欧美在线观看| 国产精品美女| 国产精品久久综合| 欧美午夜不卡影院在线观看完整版免费| 欧美xx视频| 欧美.www| 欧美成人精品一区二区| 久久综合色影院| 久久夜色精品国产噜噜av| 久久高清国产| 久久久久久久久岛国免费| 久久精品国产69国产精品亚洲| 欧美亚洲三级| 久久精品日韩一区二区三区| 欧美亚洲系列| 久久精品国产久精国产爱| 久久av在线| 久久综合狠狠综合久久激情| 免费在线亚洲欧美| 欧美肥婆在线| 欧美日韩国产精品| 欧美午夜一区二区福利视频| 国产精品嫩草影院av蜜臀| 欧美小视频在线| 国产精品天天摸av网| 国产精品综合不卡av| 国产一区二区日韩精品欧美精品| 国产亚洲综合性久久久影院| 黄色成人精品网站| 亚洲精品免费一二三区| 夜夜狂射影院欧美极品| 亚洲专区一二三| 久久久久久一区| 欧美国产精品v| 亚洲精品一区二区三区四区高清| 一本色道久久88精品综合| 亚洲一区精彩视频| 可以免费看不卡的av网站| 欧美日韩精品免费观看视频| 国产精品亚洲综合天堂夜夜 | 欧美激情精品久久久久久变态| 欧美丝袜第一区| 好吊成人免视频| 亚洲一区999| 麻豆国产精品777777在线| 亚洲精品极品| 欧美影视一区| 欧美日韩理论| 在线欧美一区| 香蕉成人久久| 亚洲黄色成人| 性欧美xxxx大乳国产app| 欧美成人午夜影院| 国产视频在线观看一区二区| 日韩视频一区二区三区在线播放免费观看| 亚洲视频精选| 欧美韩日高清| 欧美一区二区三区四区在线观看| 欧美国内亚洲| 亚洲成色精品|