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

POJ 3177 Redundant Paths 雙連通分量+縮點

Description

In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1..F) to another field, Bessie and the rest of the herd are forced to cross near the Tree of Rotten Apples. The cows are now tired of often being forced to take a particular path and want to build some new paths so that they will always have a choice of at least two separate routes between any pair of fields. They currently have at least one route between each pair of fields and want to have at least two. Of course, they can only travel on Official Paths when they move from one field to another.

Given a description of the current set of R (F-1 <= R <= 10,000) paths that each connect exactly two different fields, determine the minimum number of new paths (each of which connects exactly two fields) that must be built so that there are at least two separate routes between any pair of fields. Routes are considered separate if they use none of the same paths, even if they visit the same intermediate field along the way.

There might already be more than one paths between the same pair of fields, and you may also build a new path that connects the same fields as some other path.

Input

Line 1: Two space-separated integers: F and R

Lines 2..R+1: Each line contains two space-separated integers which are the fields at the endpoints of some path.

Output

Line 1: A single integer that is the number of new paths that must be built.

Sample Input

7 7
1 2
2 3
3 4
2 5
4 5
5 6
5 7

Sample Output

2

Hint

Explanation of the sample:

One visualization of the paths is:
   1   2   3
+---+---+
| |
| |
6 +---+---+ 4
/ 5
/
/
7 +
Building new paths from 1 to 6 and from 4 to 7 satisfies the conditions.
   1   2   3
+---+---+
: | |
: | |
6 +---+---+ 4
/ 5 :
/ :
/ :
7 + - - - -
Check some of the routes:
1 – 2: 1 –> 2 and 1 –> 6 –> 5 –> 2
1 – 4: 1 –> 2 –> 3 –> 4 and 1 –> 6 –> 5 –> 4
3 – 7: 3 –> 4 –> 7 and 3 –> 2 –> 5 –> 7

Every pair of fields is, in fact, connected by two routes.

It's possible that adding some other path will also solve the problem (like one from 6 to 7). Adding two paths, however, is the minimum.

Source


    題意大意:一群牛將被在一個特定路徑構(gòu)成的農(nóng)場上遷移,每兩塊農(nóng)場之間都至少有一條通道,這些牛要求每兩塊路徑至少要有兩條通道,求最少需要修建多少條路才能滿足要求。
    這題的解法與http://m.shnenglu.com/mythit/archive/2009/05/29/86082.html完全一樣,只是題目中說了圖中有可能存在平行邊,這里必須判斷一下。我還是很偷懶的用了STL里的vector模擬鄰接矩陣,并且開了個5001*5001的bool數(shù)組判斷平行邊。結(jié)果導(dǎo)致代碼的效率和空間消耗都很大,110MS和將近24M的內(nèi)存空間。如果自己建圖的話,效率能提高很多。

#include <iostream>
#include 
<vector>
using namespace std;

const int MAXN = 5001;
vector
< vector<int> > adj;
bool hash[MAXN][MAXN];
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;
    
while(scanf("%d %d",&n,&m)!=EOF){
        adj.assign(n
+1,vector<int>());
        memset(hash,
false,sizeof(hash));
        
while(m--){
            scanf(
"%d %d",&u,&v);
            
if(!hash[u][v]){
                hash[u][v]
=true;
                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-30 01:18 極限定律 閱讀(1575) 評論(4)  編輯 收藏 引用 所屬分類: ACM/ICPC

評論

# re: POJ 3177 Redundant Paths 雙連通分量+縮點 2009-08-14 09:53 zeus

省去hash可以這樣判重空間小很多 時間沒多多少 依然0ms
bool isok( int u, int v )//判重
{
for ( int i= 0; i< g[u].size(); ++i )
if ( g[u][i]== v ) return false;

return true;
}  回復(fù)  更多評論   

# re: POJ 3177 Redundant Paths 雙連通分量+縮點 2009-08-14 20:55 極限定律

我也想這樣做的,不過怕時間效率變低,就偷懶直接HASH了@zeus
  回復(fù)  更多評論   

# re: POJ 3177 Redundant Paths 雙連通分量+縮點 2011-04-28 09:30 Icyeye

拜讀了哈,幫助很大,謝啦^-^
但是有一點,那個visit[u]=2不知道有什么用,但注釋掉后能快三分之二左右的時間~~  回復(fù)  更多評論   

# re: POJ 3177 Redundant Paths 雙連通分量+縮點[未登錄] 2012-07-31 20:48 bigrabbit

樓主,我發(fā)現(xiàn)個問題。這組數(shù)據(jù)對于下面的數(shù)據(jù)
5 6
1 2
1 3
2 3
3 4
3 5
4 5
輸出的low數(shù)組是 0 0 0 1 1
是不對的,應(yīng)該是0 0 0 0 0,你建圖的方式很奇怪,我也看不懂你到底是怎么建圖的。可以解釋下嗎?我直接用vector<int> edg[]搞的,刪除重邊。  回復(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>
            亚洲免费在线观看视频| 亚洲伊人网站| 久久亚洲不卡| 久久久www成人免费无遮挡大片 | 制服诱惑一区二区| 国产精品激情偷乱一区二区∴| 一二三区精品| 一本一本久久a久久精品综合妖精| 欧美日韩免费高清一区色橹橹| 艳妇臀荡乳欲伦亚洲一区| 日韩午夜激情电影| 国产精品日韩欧美综合| 久久久久国产精品一区二区| 久久久久久九九九九| 亚洲国产精品尤物yw在线观看| 亚洲欧洲日产国产网站| 欧美激情在线观看| 性伦欧美刺激片在线观看| 欧美亚洲在线视频| 亚洲欧洲日夜超级视频| 妖精成人www高清在线观看| 国产欧美韩日| 亚洲国产高清在线观看视频| 国产精品成人一区二区三区吃奶| 欧美一区二区三区的| 六月天综合网| 午夜精品视频在线观看| 久久综合网络一区二区| 亚洲小少妇裸体bbw| 久久久久久网址| 一区二区三区欧美激情| 久久大逼视频| 在线亚洲伦理| 久久久五月天| 性色av一区二区三区在线观看| 久久视频精品在线| 新67194成人永久网站| 另类图片国产| 久久激情综合网| 欧美日本在线观看| 欧美成人蜜桃| 国产一区二区三区久久久久久久久 | 狠狠色狠狠色综合日日小说| 亚洲精品久久视频| 伊人精品在线| 午夜久久久久| 亚洲尤物在线| 欧美激情一区在线观看| 免费高清在线视频一区·| 国产精品素人视频| 99精品热视频| 日韩视频中文字幕| 蜜臀99久久精品久久久久久软件| 欧美在线一二三| 国产精品国产亚洲精品看不卡15 | 99视频一区二区| 久久婷婷人人澡人人喊人人爽| 欧美亚洲三区| 国产精品你懂的在线| 夜夜精品视频一区二区| 日韩一区二区精品在线观看| 久久亚洲精品伦理| 蜜桃av综合| 激情五月婷婷综合| 久久精品视频免费播放| 久久久噜噜噜久久| 国产一区二区三区在线观看视频| 亚洲伊人观看| 久久九九精品| 黑人巨大精品欧美一区二区| 欧美伊人影院| 美女图片一区二区| 最近看过的日韩成人| 美女免费视频一区| 亚洲成人在线视频播放| 亚洲欧洲视频在线| 欧美激情导航| 一区二区日韩免费看| 亚洲免费视频网站| 国产日韩精品一区二区浪潮av| 亚洲午夜精品国产| 欧美在线精品免播放器视频| 国产精品丝袜白浆摸在线| 午夜一级久久| 女人天堂亚洲aⅴ在线观看| 亚洲人成小说网站色在线| 欧美电影免费观看网站| 日韩性生活视频| 翔田千里一区二区| 在线免费日韩片| 欧美区一区二| 欧美一区二区成人6969| 欧美大片国产精品| 亚洲视频欧美视频| 国产欧美一区二区三区国产幕精品| 欧美在线观看视频一区二区| 欧美国产日韩一区二区在线观看 | 国模精品一区二区三区色天香| 久久精品国产91精品亚洲| 亚洲第一天堂无码专区| 亚洲欧美激情四射在线日| 韩国av一区二区三区四区| 欧美国产欧美综合| 亚洲欧美一区二区在线观看| 欧美国产日本高清在线| 性色一区二区| 亚洲欧洲综合另类| 国产精品亚洲成人| 久久久久久久网| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲先锋成人| 欧美国产欧美综合 | 性色av香蕉一区二区| 91久久午夜| 国产婷婷色一区二区三区在线 | 欧美精品一区二区三区久久久竹菊 | 亚洲人成网在线播放| 久久国产精品99精品国产| 99精品热视频| 亚洲福利视频在线| 国产精品网红福利| 欧美老女人xx| 久久成人国产| 亚洲欧美日韩综合一区| 亚洲免费成人av| 欧美国产激情二区三区| 久久久久在线观看| 欧美有码视频| 亚洲欧美成aⅴ人在线观看| 亚洲精品专区| 亚洲欧洲日本国产| 亚洲国产小视频| 一区二区在线不卡| 国产亚洲精品激情久久| 国产精品一级二级三级| 欧美午夜精品一区| 欧美日韩国产123| 欧美激情bt| 欧美二区在线观看| 欧美电影在线观看| 欧美高清在线精品一区| 欧美成人高清视频| 欧美成人精品在线观看| 久久一日本道色综合久久| 久久精品视频在线免费观看| 亚洲一区二区三区中文字幕在线| 日韩午夜在线播放| 一区二区av在线| 一本大道久久精品懂色aⅴ| 最新中文字幕一区二区三区| 亚洲国产精品一区二区三区| 亚洲国产精品v| 欧美激情四色| 亚洲精品在线免费| 亚洲欧洲一区二区在线观看| 亚洲人成毛片在线播放| 亚洲美女啪啪| 亚洲免费成人av| 亚洲午夜电影网| 午夜精品一区二区三区电影天堂| 午夜亚洲伦理| 久久日韩粉嫩一区二区三区| 蜜桃久久精品乱码一区二区| 女人天堂亚洲aⅴ在线观看| 欧美电影在线观看完整版| 欧美日韩国产天堂| 国产乱理伦片在线观看夜一区 | 久久天堂av综合合色| 欧美成年网站| 国产精品家庭影院| 黄色亚洲大片免费在线观看| 亚洲国产精品传媒在线观看| 日韩视频二区| 先锋影音久久| 免费成人av在线| 亚洲另类自拍| 欧美一区二区三区视频在线 | 免费成人av| 欧美日韩免费一区二区三区| 国产精品日韩电影| 亚洲国产精品国自产拍av秋霞| 99视频有精品| 久久乐国产精品| 日韩视频在线观看| 香蕉免费一区二区三区在线观看| 麻豆精品视频在线| 国产精品美女久久| 亚洲激情欧美| 久久精品色图| av不卡免费看| 看欧美日韩国产| 国产欧美日韩在线观看| 亚洲日本成人| 久久久久91| 亚洲午夜国产一区99re久久| 欧美插天视频在线播放| 国产一区在线观看视频| 一本大道久久精品懂色aⅴ| 久久只精品国产| 亚洲欧美日韩国产成人精品影院|