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

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热软件| 亚洲午夜电影在线观看| 国产精品一区二区你懂得| 亚洲精品1234| 日韩视频一区二区| 中日韩美女免费视频网站在线观看| 亚洲老司机av| 亚洲一区视频| 欧美一区免费| 国产精品午夜国产小视频| 国产精品国产三级国产aⅴ入口| 欧美色欧美亚洲另类二区| 欧美精品三级| 欧美午夜视频网站| 国产乱码精品一区二区三区不卡 | 久久这里有精品视频| 免费不卡欧美自拍视频| 91久久国产精品91久久性色| 亚洲精品一区二区三区婷婷月| 亚洲网站在线看| 久久久久久高潮国产精品视| 欧美精品综合| 亚洲性感美女99在线| 久久久精品一品道一区| 欧美激情国产日韩精品一区18| 国产精品区一区二区三| 国产亚洲欧洲| 亚洲综合999| 美日韩精品免费| 日韩一级片网址| 快she精品国产999| 欧美亚州一区二区三区| 亚洲经典视频在线观看| 欧美伊人久久大香线蕉综合69| 久久综合九色综合久99| 亚洲天堂久久| 欧美成人tv| 欧美一区二区大片| 国产精品免费福利| 亚洲激情在线观看| 另类激情亚洲| 欧美伊人久久| 国产美女在线精品免费观看| 亚洲乱码日产精品bd| 久久亚洲国产精品日日av夜夜| 亚洲精品免费在线播放| 久久躁日日躁aaaaxxxx| 国内精品99| 亚洲一区二区视频在线| 亚洲人成小说网站色在线| 久久久91精品国产一区二区三区 | 亚洲女女做受ⅹxx高潮| 国产美女精品免费电影| 欧美日韩国产天堂| 亚洲精品中文字幕在线观看| 欧美多人爱爱视频网站| 久久久天天操| 樱桃视频在线观看一区| 开心色5月久久精品| 亚洲欧美激情四射在线日| 国产精品国产三级国产aⅴ浪潮| 亚洲视频专区在线| 一区二区三区四区五区在线| 欧美日韩免费一区| 亚洲无限av看| 午夜精品在线看| 一区二区三区自拍| 亚洲国产高清aⅴ视频| 欧美激情aⅴ一区二区三区| av成人福利| 亚洲调教视频在线观看| 国产日韩综合一区二区性色av| 久久精品青青大伊人av| 久久久综合精品| 日韩亚洲欧美成人| 亚洲一区高清| 影音国产精品| 亚洲精品影院在线观看| 国产精品久久久久久影视| 久久久久久伊人| 欧美二区在线| 亚洲免费在线| 久久亚洲春色中文字幕| 在线视频亚洲一区| 久久狠狠婷婷| 亚洲午夜精品久久久久久浪潮| 欧美一区=区| 亚洲一级片在线观看| 久久9热精品视频| 一本色道久久综合亚洲精品按摩 | 久久精品中文字幕免费mv| 蜜臀久久99精品久久久久久9| 亚洲视频精品| 久久婷婷麻豆| 性欧美大战久久久久久久免费观看 | 久久综合色综合88| 欧美日韩一区自拍| 老巨人导航500精品| 欧美视频一区二区| 久久在线视频| 国产伦精品一区二区三区| 亚洲国产99精品国自产| 国产午夜精品理论片a级探花 | 欧美精品在线播放| 久久久久久一区二区三区| 亚洲精品少妇30p| 亚洲区国产区| 亚洲国产精品久久人人爱蜜臀| 亚洲影院一区| 国产揄拍国内精品对白| 亚洲三级色网| 精品二区视频| 欧美一区国产二区| 亚洲欧美变态国产另类| 欧美好骚综合网| 麻豆精品91| 国产在线视频欧美一区二区三区| 中文精品视频一区二区在线观看| 亚洲日本免费电影| 久久成人资源| 久久久久久久综合日本| 国产精品成人观看视频免费| 亚洲精品久久久久中文字幕欢迎你| 一区二区三区中文在线观看 | 欧美一区二区在线观看| 国产精品r级在线| 亚洲美女中文字幕| 亚洲精品在线观看免费| 六十路精品视频| 欧美成人免费全部| 亚洲国产1区| 老司机一区二区| 欧美高清视频| 亚洲人成人一区二区三区| 久久在线视频在线| 亚洲第一中文字幕| 亚洲精品综合在线| 欧美精品尤物在线| 国产精品99久久不卡二区| 亚洲欧美一区二区视频| 国产麻豆综合| 久久成人这里只有精品| 欧美 日韩 国产一区二区在线视频 | 亚洲欧美日韩国产一区| 国产精品美女一区二区| 欧美一级欧美一级在线播放| 久久视频一区| 在线日韩中文| 欧美日韩精品免费| 亚洲性av在线| 美女视频黄a大片欧美| 亚洲美女精品成人在线视频| 欧美日韩国产色站一区二区三区| 一区二区毛片| 久久精视频免费在线久久完整在线看| 黄色成人av在线| 欧美激情一区二区三区不卡| 一区二区三区视频免费在线观看| 欧美一区二区免费观在线| 一色屋精品视频免费看| 欧美另类极品videosbest最新版本| 亚洲天堂偷拍| 亚洲电影有码| 欧美一级成年大片在线观看| 在线成人av| 国产精品videossex久久发布| 性一交一乱一区二区洋洋av| 欧美激情亚洲视频| 欧美亚洲自偷自偷| 亚洲毛片在线看| 国产日韩欧美不卡| 亚洲国产精品嫩草影院| 亚洲成人影音| 欧美久久九九| 久久久久久久网| 中文久久乱码一区二区| 欧美黄色aa电影| 久久精品一区二区三区中文字幕| av成人黄色| 亚洲黄网站在线观看| 国产日韩欧美精品在线| 欧美日韩美女| 欧美成人亚洲成人日韩成人| 欧美在线观看视频| 99视频有精品| 亚洲高清网站| 久久亚洲一区二区三区四区| 亚洲主播在线| 日韩亚洲一区二区| 在线观看亚洲视频啊啊啊啊| 国产九区一区在线| 国产精品videosex极品| 欧美日韩国产综合一区二区| 麻豆成人综合网|