亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

HDU 3861 Tarjan + 縮點 + 最小路徑覆蓋

2019-11-14 09:50:04
字體:
來源:轉載
供稿:網友

The King’s PRoblem

Time Limit: 2000/1000 MS (java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2685    Accepted Submission(s): 978Problem DescriptionIn the Kingdom of Silence, the king has a new problem. There are N cities in the kingdom and there are M directional roads between the cities. That means that if there is a road from u to v, you can only go from city u to city v, but can’t go from city v to city u. In order to rule his kingdom more effectively, the king want to divide his kingdom into several states, and each city must belong to exactly one state. What’s more, for each pair of city (u, v), if there is one way to go from u to v and go from v to u, (u, v) have to belong to a same state. And the king must insure that in each state we can ether go from u to v or go from v to u between every pair of cities (u, v) without passing any city which belongs to other state.  Now the king asks for your help, he wants to know the least number of states he have to divide the kingdom into. InputThe first line contains a single integer T, the number of test cases. And then followed T cases. The first line for each case contains two integers n, m(0 < n <= 5000,0 <= m <= 100000), the number of cities and roads in the kingdom. The next m lines each contains two integers u and v (1 <= u, v <= n), indicating that there is a road going from city u to city v. OutputThe output should contain T lines. For each test case you should just output an integer which is the least number of states the king have to divide into. Sample Input
13 21 21 3 Sample Output
2 題意是將一些點劃分區域,同時有兩個規定:1.若有u,v兩個點,u->v且v->u 即n,v兩點可以互相到達形成環,則一定分在同一區域思路:Tarjan求強連通分量然后縮點。2.在同一區域的任意兩點至少存在一條路徑可以相互到達,即(設同一區域兩點u,v)有u->v或 v->u。思路:二分圖,很明顯是最小路徑覆蓋,縮點后建新圖,跑個匈牙利得到最大匹配 ans,結果就為: 縮點后的點數 num 減去 ans。代碼:
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int INF = 1e8;const int maxn = 5010;vector<int> G[maxn],G2[maxn];int low[maxn],dfn[maxn]; int vis[maxn],instack[maxn],point[maxn],match[maxn];int n,tot,num;stack<int> S;void init(void){    tot = num = 0;    for(int i=0 ;i<=n ;i++){        G[i].clear();        G2[i].clear();        match[i] = -1;        low[i] = dfn[i] = 0;        vis[i] = instack[i] = point[i] = 0;    }    while(S.size())    S.pop();}void Tarjan(int x){    low[x] = dfn[x] = tot++;    vis[x] = instack[x] = 1;    S.push(x);    for(int i=0 ;i<G[x].size();i++){        int v = G[x][i];        if(!vis[v]){            Tarjan(v);            low[x] = min(low[x],low[v]);        }        else if(instack[v]){            low[x] = min(low[x],dfn[v]);        }    }    if(low[x] == dfn[x]){        while(1){            int t = S.top();            S.pop();            instack[t] = 0;            point[t] = num;             if(t == x)    break;        }        num++;    }}bool find(int x){	for(int i=0 ;i<G2[x].size() ;i++){		int t = G2[x][i];		if(!vis[t]){			vis[t] = 1;			if(match[t] == -1 || find(match[t])){				match[t] = x;				return true;			}		}		}	return false;}int main(){   	int T;   	scanf("%d",&T);   	while(T--){		int m;		scanf("%d%d",&n,&m);		init();   		while(m--){   			int x,y;			scanf("%d%d",&x,&y);			G[x].push_back(y);			}		for(int i=1 ;i<=n ;i++){			if(!vis[i]){				Tarjan(i);			}		}		for(int i=1 ;i<=n ;i++){			for(int j=0 ;j<G[i].size() ;j++){				if(point[i] != point[G[i][j]]){					G2[point[i]].push_back(point[G[i][j]]);				}			}		}		int ans = 0;		for(int i=0 ;i<num ;i++){			memset(vis,0,sizeof(vis));			if(find(i))				ans++;		}		cout << num-ans << endl;			}    return 0;}  
上一篇:[BZOJ3282][LCT]Tree

下一篇:上樓梯問題

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线观看成人| 97精品视频在线观看| 日本中文字幕成人| 国产精品女主播| 色婷婷亚洲mv天堂mv在影片| 久久精品人人做人人爽| 亚洲黄页视频免费观看| 91成人在线视频| 精品久久久久久| 国产伦精品一区二区三区精品视频| 亚洲精品98久久久久久中文字幕| 成人中心免费视频| 91最新在线免费观看| 成人免费网视频| 亚洲最大福利视频| 亚洲激情成人网| 国产成人免费av电影| 91国产高清在线| 欧美夫妻性视频| 成人免费看黄网站| 欧美激情极品视频| 色老头一区二区三区| 亚洲人成在线观看| 欧美激情精品久久久久久久变态| 国产精品久久久久高潮| 精品国偷自产在线视频| 日韩av在线不卡| 91国产精品91| 国产va免费精品高清在线观看| 久久综合久中文字幕青草| 日韩av一区在线| 最近2019年中文视频免费在线观看| 亚洲无限乱码一二三四麻| 久久久久久伊人| 日韩欧美一区二区三区| 欧美高清在线观看| 欧美福利视频在线| 欧美性猛交xxxx偷拍洗澡| 亚洲欧洲一区二区三区久久| 欧美日韩在线第一页| 97国产精品久久| 亚洲成人av片| 亚洲伊人久久综合| 亚洲18私人小影院| 97香蕉超级碰碰久久免费的优势| 91精品国产综合久久香蕉922| 91精品综合久久久久久五月天| 欧美亚洲另类制服自拍| 欧美精品videosex性欧美| 国产suv精品一区二区| 亚洲欧美制服第一页| 激情亚洲一区二区三区四区| 亚洲人成自拍网站| 亚洲欧美国产精品| 国产成人鲁鲁免费视频a| 国产免费观看久久黄| 在线亚洲男人天堂| 国产精品夜色7777狼人| 97香蕉超级碰碰久久免费软件| 91大神福利视频在线| 最近中文字幕2019免费| 国产免费久久av| 亚洲精品久久久久久久久久久久久| 欧美一区深夜视频| 欧美色视频日本版| 亚洲国产精品电影在线观看| 亚洲欧美在线一区二区| 日韩二区三区在线| 亚洲国产天堂网精品网站| 国产精品白丝av嫩草影院| 欧美激情亚洲综合一区| 国产精品99久久久久久白浆小说| 国产99久久精品一区二区 夜夜躁日日躁| 热久久这里只有精品| 日韩电影第一页| 91精品国产高清久久久久久91| 亚洲3p在线观看| 91影院在线免费观看视频| 国产欧美 在线欧美| 亚洲人成人99网站| 中文字幕在线日韩| 91九色蝌蚪国产| 在线看欧美日韩| 美女av一区二区三区| 久久久久久久香蕉网| 亚洲成色777777女色窝| 日本国产欧美一区二区三区| 伦伦影院午夜日韩欧美限制| 久久6精品影院| 尤物tv国产一区| 亚洲a中文字幕| 欧美亚洲另类在线| 91精品啪在线观看麻豆免费| 一区二区福利视频| 久久久国产精品亚洲一区| 欧美久久精品一级黑人c片| 日韩在线观看网站| 亚洲精品成人久久久| 久久国产一区二区三区| 亚洲福利视频在线| 日韩精品免费在线观看| 亚洲精品一二区| 精品亚洲国产成av人片传媒| 久久免费成人精品视频| 欧日韩不卡在线视频| 国产亚洲精品激情久久| 精品国产区一区二区三区在线观看| 国产一区视频在线播放| 国产精品久久综合av爱欲tv| 亚洲视频999| 久久久精品999| 神马久久久久久| 国产精品第一区| 亚洲国产美女精品久久久久∴| 亚洲aa在线观看| 伊人久久精品视频| 国产精品久久久久久婷婷天堂| 国产成人精品视频在线观看| 久久久久久久国产精品视频| 96pao国产成视频永久免费| 国产精品免费久久久久影院| 久久影视三级福利片| 日韩av最新在线| 国产精品国产三级国产专播精品人| 不卡伊人av在线播放| 久久综合色88| 久久久久久免费精品| 国产亚洲欧美日韩美女| 国产精品国产三级国产aⅴ9色| 欧美性猛交xxxx| 国模视频一区二区三区| 亚洲电影免费观看高清完整版在线| xvideos国产精品| 欧美精品18videos性欧美| 国产精品精品久久久久久| 国产一区二区三区高清在线观看| 日韩欧美国产视频| 亚洲一区av在线播放| 国产日韩欧美一二三区| 欧美精品国产精品日韩精品| www国产亚洲精品久久网站| 黑人与娇小精品av专区| 欧美大片在线免费观看| 精品无人区太爽高潮在线播放| 午夜精品久久久久久久久久久久久| 91色在线视频| 国产成人久久精品| 97精品国产97久久久久久春色| 日韩美女在线观看一区| 琪琪亚洲精品午夜在线| 国产日韩在线看| 美日韩精品视频免费看| 国产有码在线一区二区视频| 欧美国产极速在线| 欧美疯狂xxxx大交乱88av| 成人av在线网址| 成人字幕网zmw| 亚洲美女又黄又爽在线观看| 亚洲美女免费精品视频在线观看| 亚洲欧美三级伦理| 亚洲精品成人av| 久久99国产综合精品女同| 久久久999精品免费| 欧美日韩在线观看视频小说|