2014 UESTC Training for Graph Theory B
2014-06-15 00:23
435 查看
将所有的联通块看做成一个点,就能得到一棵树
无环的,那么只需要将叶子节点连接在一起就可以,需要的边数就是(ans+1)/2
求边联通分量就套tarjan模板最后找到叶子节点数目就可以
无环的,那么只需要将叶子节点连接在一起就可以,需要的边数就是(ans+1)/2
求边联通分量就套tarjan模板最后找到叶子节点数目就可以
#include <map> #include <set> #include <list> #include <cmath> #include<cctype> #include <ctime> #include <deque> #include <stack> #include <queue> #include <cstdio> #include <string> #include <vector> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> #define LL long long #define PI 3.1415926535897932626 using namespace std; int gcd(int a, int b) { return a % b == 0 ? b : gcd(b, a % b); } #define MAXN 100002 int degree[MAXN]; int pre[MAXN],lowlink[MAXN]; int dfs_clock,scc_cnt; vector <int>G[MAXN]; int N,M; void dfs(int u,int fa) { pre[u]=lowlink[u]=++dfs_clock; for (int i=0;i<(int)G[u].size();i++) { int v=G[u][i]; if (!pre[v]) { dfs(v,u); lowlink[u]=min(lowlink[u],lowlink[v]); } if (v!=fa) { lowlink[u]=min(lowlink[u],pre[v]); } } } void init() { dfs_clock=scc_cnt=0; memset(pre,0,sizeof(pre)); memset(lowlink,0,sizeof(lowlink)); int a,b; memset(degree,0,sizeof(degree)); for (int i=0;i<=N;i++) G[i].clear(); for (int i=0;i<M;i++) { scanf("%d%d",&a,&b); G[a].push_back(b); G[b].push_back(a); } } int main() { //freopen("sample.txt","r",stdin); while (scanf("%d%d",&N,&M)!=EOF) { init(); dfs(1,-1); for (int u=1;u<=N;u++) for (int i=0;i<(int)G[u].size();i++) { int v=G[u][i]; if (lowlink[u]!=lowlink[v]) degree[lowlink[v]]++; } //for (int i=0;i<N;i++) printf("%d\n",lowlink[i]); int ans=0; for (int i=1;i<=N;i++) if (degree[i]==1) ans++; printf("%d\n",(ans+1)/2); } return 0; }
相关文章推荐
- 2014 UESTC Training for Graph Theory Problem H 方老师的分身 II
- 2014 UESTC Training for Graph Theory Problem G 方老师分身 I
- 2014 UESTC Training for Graph Theory Problem I 方老师的分身 III
- 2014 UESTC Training for Graph Theory C
- 2014 UESTC Training for Graph Theory Problem F 握手
- 2014 UESTC Training for Graph Theory F
- 2014 UESTC Training for Graph Theory Problem K WHITE ALBUM
- 2014 UESTC Training for Graph Theory G
- 2014 UESTC Training for Graph Theory H
- 2014 UESTC Training for Graph Theory I
- 2014 UESTC Training for Graph Theory J
- 2014 UESTC Training for Graph Theory K
- 2014 UESTC Training for Graph Theory L
- 2017 UESTC Training for Graph Theory
- UESTC Training for Graph Theory——K、Blinking Stalkers
- UESTC Training for Graph Theory——L、House Man
- UESTC Training for Graph Theory——M、Network
- UESTC Training for Graph Theory——N、滑雪与时间胶囊(Large Input)
- UESTC_秋实大哥与连锁快餐店 2015 UESTC Training for Graph Theory<Problem A>
- 2016 UESTC Training for Graph Theory