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

posts - 18,  comments - 5,  trackbacks - 0

一、題目描述

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


二、分析
      用DFS解決問題,詳細(xì)算法:割點(diǎn)與橋。
三、代碼

 1#include<iostream>
 2#include<list>
 3using namespace std;
 4int n, r;
 5list<int> g[1001];
 6int num, lab[1001], low[1001];
 7list<pair<intint> > edge;
 8int degree[1001];
 9int parent[1001], rank[1001];
10void init_set()
11{
12    for(int i=1; i<1001; i++)
13    {
14        parent[i] = i;
15        rank[i] = 1;
16    }

17}

18int find(int k)
19{
20    if(parent[k] == k) 
21        return k;
22    else
23        return parent[k] = find(parent[k]);
24}

25void union_set(int u, int v)
26{
27    int pu = find(u), pv = find(v);
28    if(rank[pu] <= rank[pv])
29    {
30        parent[pu] = pv;
31        rank[pv] += pu;
32    }

33    else
34    {
35        parent[pv] = pu;
36        rank[pu] += pv;
37    }

38}

39void dfs(int u, int p)
40{
41    lab[u] = low[u] = num++;
42    list<int>::iterator it;
43    for(it = g[u].begin(); it != g[u].end(); it++)
44    {
45        int v = *it;
46        if(lab[v] == 0)
47        {
48            dfs(v, u);
49            low[u] = min(low[u], low[v]);
50            if(low[v] > lab[u])
51                edge.push_back(make_pair(u, v));
52            else
53                union_set(u, v); //u與v能進(jìn)行縮點(diǎn)
54        }

55        else if(v != p)
56            low[u] = min(low[u], lab[v]);
57    }

58}

59int main()
60{
61    scanf("%d%d"&n, &r);
62    for(int i=1; i<=n; i++)
63        g[i].clear();
64    for(int i=1; i<=r; i++)
65    {
66        int v1, v2;
67        scanf("%d%d"&v1, &v2);
68        g[v1].push_back(v2);
69        g[v2].push_back(v1);
70    }

71    memset(lab, 0sizeof lab);
72    memset(low, 0x7fsizeof low);
73    num = 1;
74    init_set();
75    dfs(10);
76    memset(degree, 0sizeof degree);
77    list<pair<intint> >::iterator it;
78    int res = 0;
79    for(it = edge.begin(); it != edge.end(); it++)
80    {
81        int u = it->first, v = it->second;
82        degree[find(u)]++;
83        if(degree[find(u)] == 1)
84            res++;
85        else if(degree[find(u)] == 2)
86            res--;
87        degree[find(v)]++;
88        if(degree[find(v)] == 1)
89            res++;
90        else if(degree[find(v)] == 2)
91            res--;
92    }

93    printf("%d\n", (res+1/ 2);
94}
posted on 2009-07-05 16:08 Icyflame 閱讀(1435) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美在线免费| 亚洲一区二区三区国产| 蜜桃久久精品乱码一区二区| 久久精品一区蜜桃臀影院| 欧美在线一二三| 裸体素人女欧美日韩| 欧美人与性动交cc0o| 欧美色播在线播放| 欧美精品少妇一区二区三区| 亚洲国产精品va在看黑人| 欧美日韩免费看| 国产精品进线69影院| 国产精品老女人精品视频| 国产色综合久久| 最新国产の精品合集bt伙计| 在线亚洲一区| 久久免费国产| 99国产精品私拍| 久久狠狠亚洲综合| 欧美日韩高清在线观看| 国产日韩一区二区三区在线播放| 亚洲成人直播| 午夜精品久久久久影视| 美腿丝袜亚洲色图| 正在播放日韩| 欧美成人首页| 国内精品久久久久久影视8| 一区二区三区不卡视频在线观看| 久久理论片午夜琪琪电影网| 在线亚洲精品| 欧美精品乱码久久久久久按摩| 国产欧美日韩免费| 99精品热视频| 欧美国产综合| 久久精品99国产精品| 国产精品久久久久久久浪潮网站| 永久免费精品影视网站| 午夜影院日韩| 日韩午夜激情| 欧美久久综合| 亚洲精品乱码久久久久久蜜桃麻豆 | 一区二区三区.www| 男女精品视频| 欧美在线免费视屏| 国产人成一区二区三区影院| 亚洲视频在线看| 亚洲区一区二| 久久久久久一区二区三区| 国产日韩在线不卡| 亚洲欧美精品| 99热这里只有精品8| 欧美精品一区二区三区一线天视频| 尤物在线观看一区| 老司机免费视频一区二区| 香港成人在线视频| 国产三级欧美三级| 久久成人精品电影| 欧美一区二区三区的| 国产日韩欧美综合| 久久精品视频在线看| 欧美一区二区性| 影音欧美亚洲| 亚洲国产婷婷| 亚洲午夜精品一区二区| 99精品视频一区二区三区| 欧美搞黄网站| 媚黑女一区二区| 亚洲人成人77777线观看| 欧美激情1区2区3区| 欧美电影免费网站| 一区二区三区久久网| 一区二区三区三区在线| 国产精品综合视频| 久久噜噜亚洲综合| 美女尤物久久精品| 亚洲天堂网在线观看| 亚洲男女自偷自拍图片另类| 国产一区二区三区四区三区四 | 欧美大片在线观看一区二区| 日韩一本二本av| 亚洲色图在线视频| 国模套图日韩精品一区二区| 欧美波霸影院| 欧美日韩一区二区三| 久久国产手机看片| 久久久精品欧美丰满| 亚洲三级视频在线观看| 亚洲在线观看免费视频| 精品69视频一区二区三区 | 亚洲欧美中文日韩v在线观看| 国产一区二区三区高清在线观看| 美女久久一区| 欧美视频官网| 欧美r片在线| 国产精品久久久久久久免费软件 | 亚洲欧美日韩精品久久| 久久久久久久久久久久久9999| 亚洲人成在线播放网站岛国| 亚洲欧美激情一区二区| 亚洲日本欧美日韩高观看| 亚洲欧美日韩中文视频| 亚洲理论在线| 欧美一区影院| 国产精品99久久久久久人| 久久久噜噜噜久久中文字免| 亚洲在线免费| 欧美—级高清免费播放| 久久香蕉精品| 国产精品亚洲片夜色在线| 亚洲日本中文字幕区| 亚洲第一级黄色片| 欧美一区二区三区在线视频| 亚洲网站在线播放| 欧美精品一卡| 欧美a级大片| 国产一区91精品张津瑜| 中日韩美女免费视频网站在线观看| 亚洲国产日韩在线| 久久激五月天综合精品| 久久中文字幕一区二区三区| 欧美视频一区二区在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 欧美三级电影网| 亚洲国产精品一区| 亚洲第一在线综合在线| 久久精品国产在热久久 | 国产一区二区三区精品久久久| 一区二区三区免费观看| 一本色道久久综合| 欧美人与性禽动交情品| 91久久线看在观草草青青| 在线日韩电影| 毛片一区二区| 欧美成人午夜| 亚洲精品国产精品久久清纯直播 | 久久精品午夜| 久久一二三区| 亚洲第一色在线| 免费永久网站黄欧美| 欧美国产日韩在线观看| 亚洲激情电影在线| 欧美成人精品三级在线观看| 欧美国产一区二区在线观看 | 亚洲乱码国产乱码精品精| 欧美韩日高清| 一区二区日韩免费看| 性色av一区二区怡红| 国产伦精品一区二区三区在线观看| 亚洲中无吗在线| 久久精品国产一区二区三区| 黄色一区三区| 欧美高清在线一区二区| 99视频精品| 久久精品动漫| 亚洲精品美女91| 欧美亚一区二区| 欧美一区二区在线播放| 亚洲电影免费| 午夜精品视频| 亚洲国产精品电影在线观看| 欧美日韩国产欧| 先锋影音网一区二区| 亚洲第一成人在线| 亚洲一区二区久久| 国产专区综合网| 欧美成年人网站| 一区二区三区色| 免费短视频成人日韩| 国产精品99久久久久久久久久久久| 国产欧美一区二区精品性| 狂野欧美激情性xxxx| avtt综合网| 另类av导航| 午夜精品视频在线观看一区二区| 在线观看日韩欧美| 国产精品大片| 鲁大师影院一区二区三区| 在线亚洲自拍| 欧美激情免费在线| 久久精品91| 亚洲欧美精品在线观看| 国产专区一区| 亚洲第一在线综合网站| 狠狠色综合日日| 欧美日韩理论| 久久久久久久久久码影片| 一区二区精品国产| 久久久久久久久综合| 正在播放亚洲一区| 在线观看视频亚洲| 国产精品私拍pans大尺度在线| 午夜在线不卡| 日韩网站免费观看| 亚洲成人资源| 久久久久久久久久久成人| 亚洲无限av看| 亚洲免费av片| 亚洲人体偷拍| 亚洲人成在线播放| 91久久精品一区|