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

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://www.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>
            这里只有精品视频在线| 日韩视频在线一区二区| 亚洲黄色尤物视频| 99re这里只有精品6| 欧美黄色网络| 蜜臀久久久99精品久久久久久| 国产精品网红福利| 香蕉久久一区二区不卡无毒影院 | 麻豆国产精品va在线观看不卡| 欧美激情片在线观看| 亚洲无人区一区| 亚洲国产天堂网精品网站| 亚洲福利视频二区| 欧美高清视频一区二区| 亚洲电影在线| 欧美国产成人在线| 免费国产一区二区| 99精品国产高清一区二区| 亚洲激情电影在线| 欧美日韩国产电影| 亚洲欧美视频一区| 先锋影音久久久| 黄色在线一区| 亚洲电影av| 欧美日韩色一区| 亚洲一区成人| 亚洲淫性视频| 一本色道久久综合| 欧美肥婆在线| 欧美国产日韩免费| 亚洲午夜精品久久| 亚洲欧美在线一区二区| 韩国一区电影| 亚洲国产一区二区三区青草影视| 欧美精品xxxxbbbb| 亚洲欧美激情诱惑| 久久裸体视频| 99热这里只有成人精品国产| 亚洲免费视频中文字幕| 亚洲第一精品福利| 日韩网站在线观看| 国产日本欧美视频| 亚洲国产日韩一级| 国产欧美日韩视频在线观看| 亚洲午夜在线观看| 久久久久久久精| 欧美bbbxxxxx| 欧美一级播放| 欧美精品一区在线发布| 久久精品人人做人人爽| 久久久国产视频91| 一区二区三区欧美在线| 久久久7777| 香蕉久久夜色精品国产| 农村妇女精品| 久久精品一区蜜桃臀影院| 欧美激情一区二区三区在线视频 | 夜夜嗨av色一区二区不卡| 国产一级久久| 欧美国产精品v| 国产欧美日韩一区二区三区在线观看 | 欧美r片在线| 国产精品xxxxx| 亚洲第一视频| 国模大胆一区二区三区| 中日韩视频在线观看| 亚洲精品国产品国语在线app| 午夜视频精品| 亚洲一级电影| 欧美日韩综合在线免费观看| 欧美激情精品久久久久久变态 | 91久久一区二区| 国产在线视频不卡二| 亚洲一区成人| 国产日韩欧美另类| 国产一区二区日韩精品| 久久精品一本| 国产精品美女久久久久久久| 亚洲精品久久久久久久久久久| 激情综合色丁香一区二区| 亚洲欧美中文另类| 亚洲欧美日韩视频一区| 欧美日韩亚洲另类| 日韩亚洲欧美中文三级| 一区二区三区黄色| 久久综合精品一区| 久久爱www久久做| 国产日韩欧美综合一区| 欧美一区二区三区免费大片| 欧美一级二级三级蜜桃| 国产精品爽黄69| 香蕉久久精品日日躁夜夜躁| 久久国产精品久久精品国产| 国产视频一区在线| 欧美在线日韩精品| 免费高清在线一区| 欧美一区二区三区的| 亚洲国产欧美精品| 猛干欧美女孩| 亚洲国产成人精品久久| 亚洲最新色图| 国产精品日韩一区| 欧美亚洲视频| 久久一日本道色综合久久| 国产亚洲一区二区精品| 玖玖玖国产精品| 亚洲高清一二三区| 亚洲午夜激情免费视频| 国产精品亚洲综合久久| 性做久久久久久久免费看| 毛片一区二区| 一区二区三区 在线观看视频| 欧美午夜精品理论片a级按摩| 亚洲欧美日韩一区| 欧美 日韩 国产一区二区在线视频 | 亚洲第一黄网| 老鸭窝毛片一区二区三区 | 日韩网站在线看片你懂的| 欧美日韩国产bt| 午夜激情综合网| 欧美激情第三页| 欧美一二三区精品| 亚洲国产精品va| 国产精品丝袜91| 麻豆精品传媒视频| 亚洲三级免费观看| 亚洲一区二区免费| 精品不卡视频| 欧美日韩小视频| 亚洲欧美激情四射在线日 | 午夜亚洲一区| 在线观看欧美成人| 国产精品久久9| 欧美激情一二三区| 久久精品系列| 亚洲一区二区影院| 亚洲日本欧美在线| 欧美专区在线播放| 亚洲一级在线| 亚洲日韩欧美视频| 黄色精品在线看| 国产女人水真多18毛片18精品视频| 久久婷婷久久一区二区三区| 亚洲与欧洲av电影| 亚洲精品一区二区三区樱花| 欧美69wwwcom| 正在播放欧美视频| 在线观看一区二区精品视频| 欧美日韩在线精品| 欧美岛国在线观看| 久久夜色精品一区| 久久久中精品2020中文| 午夜精品亚洲| 亚洲综合电影| 国产精品99久久久久久久女警| 亚洲欧洲日本国产| 亚洲国产欧美在线人成| 欧美福利视频网站| 欧美国产日韩xxxxx| 美女主播视频一区| 午夜宅男欧美| 在线观看91精品国产入口| 国产在线欧美| 亚洲精选视频免费看| 亚洲视频在线观看视频| 欧美一区二区三区免费看| 久久这里有精品视频| 欧美激情一区二区三区不卡| 亚洲精品亚洲人成人网| 亚洲男人的天堂在线观看| 久久久久久久网站| 欧美激情小视频| 国产精品一区二区你懂得 | 男人的天堂亚洲在线| 欧美电影在线免费观看网站| 欧美亚男人的天堂| 韩国一区电影| 亚洲午夜精品一区二区| 久久久噜噜噜久久久| 亚洲精品一区二区三区不| 午夜精品999| 欧美高清在线观看| 国产视频在线观看一区 | 欧美亚一区二区| 一区在线播放视频| 亚洲图片欧洲图片av| 久久综合一区二区| 亚洲视频欧美在线| 看片网站欧美日韩| 国产区二精品视| 一区二区日韩精品| 欧美va亚洲va国产综合| 亚洲午夜精品福利| 欧美激情国产日韩| 精品成人国产在线观看男人呻吟| 亚洲一区在线免费| 亚洲片国产一区一级在线观看| 欧美一区二区国产| 国产精品美女久久| 日韩系列在线|