给你一个无向图,问至少加几条边可以使整个图变成一个双联通分量

简单图论练习= =

先缩点,ans = (度数为1的点的个数) / 2

这不是很好想的么QAQ

然后注意位运算的优先级啊魂淡!!!你个sb调了一个下午!!!

 /**************************************************************
Problem: 1718
User: rausen
Language: C++
Result: Accepted
Time:44 ms
Memory:3148 kb
****************************************************************/ #include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
const int N = 5e4 + ;
const int M = 1e5 + ; struct edge {
int next, to;
edge(int _n = , int _t = ) : next(_n), to(_t) {}
} e[M]; int n, m, ans;
int cnt, top, num, tot = ;
int dfn[N], low[N], vis[N], sz[N], s[N], w[N], first[N];
int mp[N]; inline void Add_Edges(int x, int y) {
e[++tot] = edge(first[x], y), first[x] = tot;
e[++tot] = edge(first[y], x), first[y] = tot;
} void DFS(int p, int from) {
dfn[p] = low[p] = ++cnt;
s[++top] = p, vis[p] = ;
#define y e[x].to
register int x;
for (x = first[p]; x; x = e[x].next)
if (x != (from ^ )) {
if (!vis[y]) DFS(y, x);
if (vis[y] < ) low[p] = min(low[p], low[y]);
}
#undef y
if (dfn[p] == low[p]) {
register int y;
++num;
while (s[top + ] != p) {
y = s[top--];
vis[y] = , w[y] = num;
++sz[num];
}
}
} inline void tarjan() {
int i;
cnt = top = num = ;
memset(vis, sizeof(vis), );
for (i = ; i <= n; ++i)
if (!vis[i]) DFS(i, );
} int main() {
int i, x, y;
scanf("%d%d", &n, &m);
for (i = ; i <= m; ++i) {
scanf("%d%d", &x, &y);
Add_Edges(x, y);
}
tarjan();
#define y e[x].to
memset(mp, , sizeof(mp));
for (i = ; i <= n; ++i)
for (x = first[i]; x; x = e[x].next)
if (w[i] != w[y]) ++mp[w[y]];
for (ans = i = ; i <= num; ++i)
ans += (mp[i] == );
printf("%d\n", ans >> );
#undef y
return ;

BZOJ1718 [Usaco2006 Jan] Redundant Paths 分离的路径的更多相关文章

  1. [BZOJ1718]:[Usaco2006 Jan] Redundant Paths 分离的路径(塔尖)

    题目传送门 题目描述 为了从F个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们已经厌倦了被迫走某一条路,所以她们想建一些新路,使每一对草场之间都会至少有两条相互分 ...

  2. BZOJ1718: [Usaco2006 Jan] Redundant Paths 分离的路径【边双模板】【傻逼题】

    LINK 经典傻逼套路 就是把所有边双缩点之后叶子节点的个数 //Author: dream_maker #include<bits/stdc++.h> using namespace s ...

  3. BZOJ 1718: [Usaco2006 Jan] Redundant Paths 分离的路径( tarjan )

    tarjan求边双连通分量, 然后就是一棵树了, 可以各种乱搞... ----------------------------------------------------------------- ...

  4. [Usaco2006 Jan] Redundant Paths 分离的路径

    1718: [Usaco2006 Jan] Redundant Paths 分离的路径 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1132  Solv ...

  5. BZOJ 1718: [Usaco2006 Jan] Redundant Paths 分离的路径

    Description 给出一个无向图,求将他构造成双连通图所需加的最少边数. Sol Tarjan求割边+缩点. 求出割边,然后缩点. 将双连通分量缩成一个点,然后重建图,建出来的就是一棵树,因为每 ...

  6. 【BZOJ】1718: [Usaco2006 Jan] Redundant Paths 分离的路径

    [题意]给定无向连通图,要求添加最少的边使全图变成边双连通分量. [算法]Tarjan缩点 [题解]首先边双缩点,得到一棵树(无向无环图). 入度为1的点就是叶子,两个LCA为根的叶子间合并最高效,直 ...

  7. bzoj 1718: [Usaco2006 Jan] Redundant Paths 分离的路径【tarjan】

    首先来分析一下,这是一张无向图,要求没有两条路联通的点对个数 有两条路连通,无向图,也就是说,问题转化为不在一个点双连通分量里的点对个数 tarjan即可,和求scc还不太一样-- #include& ...

  8. 【bzoj1718】Redundant Paths 分离的路径

    1718: [Usaco2006 Jan] Redundant Paths 分离的路径 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 964  Solve ...

  9. Redundant Paths 分离的路径【边双连通分量】

    Redundant Paths 分离的路径 题目描述 In order to get from one of the F (1 <= F <= 5,000) grazing fields ...

随机推荐

  1. HTML笔记(二) 在HTML中使用CSS

    外部CSS: <head> <link rel="stylesheet" type="text/css" href="mystyle ...

  2. lazyload懒加载的使用

    1.引用<script src="http://a.tbcdn.cn/apps/baron/js/??lib/tmm/tmm.js,lib/lazyload/lazyload.js?2 ...

  3. GitHub上不错的Android开源项目(三)

    收集相关系列资料,自己用作参考,练习和实践.小伙伴们,总有一天,你也能写出 Niubility 的 Android App :-) GitHub上不错的Android开源项目(一):http://ww ...

  4. 2013 Multi-University Training Contest 2

    HDU-4611 Balls Rearrangement 题意:具体题意不大清楚,最后要处理一个这样的表达式:sum{ |i % a - i % b| },0 <= i < N 的取值很大 ...

  5. mysql概要(十三)备份和恢复

    1.采用mysql 自带备份命令: 数据库恢复:

  6. 学习日记day8:移动端页面流程优化

    一:切图 1:切那些(移动端能不用图片就不用图片:logo单独切因为要带链接) 2:普通切(快捷键:复制到新图层  选中 复制 新建 粘贴 保存)  3:类似切 (选中多个图层  矩形框多选  选择工 ...

  7. mysql 查询开销

    1.select @@profiling;2.set @@session.profiling=on;3.show profiles;4.show profile for query 2;

  8. Nginx反向代理负载均衡

    环境准备: 总共四台机器,两台装有Nginx的机器做负载均衡,两台机器装有Apache作为WEB服务器. 机器信息 hostname IP 说明 lb01 192.168.1.19 nginx主负载均 ...

  9. idea+git

    http://www.cnblogs.com/java-maowei/p/5950930.html

  10. CRLF CSRF XSS

    http://baike.baidu.com/link?url=BXWN2I6J23thrrm6JoEnAYvmNqp83llyaydaj5RYkq--tuJKSFuMuDMIoTPnKjthRUm3 ...