poj 3177&&poj 3352加边构双联通(有重边)用tarjan 模板求的
- #include<stdio.h>/*
- 求边双联通分量和求强连通差不多,先缩点求出叶子节点的个数
- */
- #include<string.h>
- #define N 5100
- struct node {
- int u,v,next;
- }bian[N*4];
- int dfn[N],low[N],head[N],index,cnt,yong,stac[N],suo[N],vis[N],top,degree[N];
- void init() {
- memset(dfn,0,sizeof(dfn));
- memset(low,0,sizeof(low));
- memset(head,-1,sizeof(head));
- memset(vis,0,sizeof(vis));
- index=0;cnt=0;yong=0;top=0;
- memset(degree,0,sizeof(degree));
- }
- int Min(int a,int b) {
- return a>b?b:a;
- }
- void addedge(int u,int v) {
- bian[yong].u=u;
- bian[yong].v=v;
- bian[yong].next=head[u];
- head[u]=yong++;
- }
- void tarjan(int u,int fa) {
- dfn[u]=low[u]=++index;
- vis[u]=1;
- stac[++top]=u;
- int i;
- for(i=head[u];i!=-1;i=bian[i].next) {
- int v=bian[i].v;
- if(i==(fa^1))continue;//注意优先级
- if(!dfn[v]) {
- tarjan(v,i);
- low[u]=Min(low[u],low[v]);
- }
- else if(vis[v])
- low[u]=Min(low[u],dfn[v]);
- }
- if(low[u]==dfn[u]) {
- cnt++;
- int t;
- do{
- t=stac[top--];
- vis[t]=0;
- suo[t]=cnt;
- }while(u!=t);
- }
- }
- int main() {
- int n,m,i,a,b;
- while(scanf("%d%d",&n,&m)!=EOF) {
- init();
- while(m--) {
- scanf("%d%d",&a,&b);
- addedge(a,b);
- addedge(b,a);
- }
- for(i=1;i<=n;i++)
- if(!dfn[i])
- tarjan(i,-1);
- for(i=0;i<yong;i++) {
- int u,v;
- u=bian[i].u;
- v=bian[i].v;
- if(suo[u]!=suo[v]) {
- degree[suo[u]]++;
- degree[suo[v]]++;
- }
- }
- int leave=0;
- for(i=1;i<=cnt;i++)
- if(degree[i]==2)
- leave++;
- printf("%d\n",(leave+1)/2);
- }
- return 0;
- }
poj 3177&&poj 3352加边构双联通(有重边)用tarjan 模板求的的更多相关文章
- POJ 3352 Road Construction(边双连通分量,桥,tarjan)
题解转自http://blog.csdn.net/lyy289065406/article/details/6762370 文中部分思路或定义模糊,重写的红色部分为修改过的. 大致题意: 某个企业 ...
- 大白书中无向图的点双联通分量(BCC)模板的分析与理解
对于一个无向图,如果任意两点至少存在两条点不重复(除起点和终点外无公共点)的路径,则这个图就是点双联通. 这个要求等价于任意两条边都存在于一个简单环(即同一个点不能在圈中出现两次)中,即内部无割点. ...
- HDU4738 Caocao's Bridges —— 边双联通分量 + 重边
题目链接:https://vjudge.net/problem/HDU-4738 A network administrator manages a large network. The networ ...
- HDU4612 Warm up —— 边双联通分量 + 重边 + 缩点 + 树上最长路
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4612 Warm up Time Limit: 10000/5000 MS (Java/Ot ...
- POJ 3177 Redundant Paths (桥,边双连通分量,有重边)
题意:给一个无向图,问需要补多少条边才可以让整个图变成[边双连通图],即任意两个点对之间的一条路径全垮掉,这两个点对仍可以通过其他路径而互通. 思路:POJ 3352的升级版,听说这个图会给重边.先看 ...
- 【POJ 3177】Redundant Paths(边双连通分量)
求出每个边双连通分量缩点后的度,度为1的点即叶子节点.原图加上(leaf+1)/2条边即可变成双连通图. #include <cstdio> #include <cstring> ...
- 边双连通分量 jarjan (poj 3177)
大意:给定一个无向连通图,判断至少加多少的边,才能使任意两点之间至少有两条的独立的路(没有公共的边,但可以经过同一个中间的顶点). 思路:在同一个双连通分量里的所有的点可以看做一个点,收缩后,新图是一 ...
- 边双联通问题求解(构造边双连通图)POJ3352(Road Construction)
题目链接:传送门 题目大意:给你一副无向图,问至少加多少条边使图成为边双联通图 题目思路:tarjan算法加缩点,缩点后求出度数为1的叶子节点个数,需要加边数为(leaf+1)/2 #include ...
- POJ 3177 Redundant Paths POJ 3352 Road Construction(双连接)
POJ 3177 Redundant Paths POJ 3352 Road Construction 题目链接 题意:两题一样的.一份代码能交.给定一个连通无向图,问加几条边能使得图变成一个双连通图 ...
随机推荐
- mysql数据库操作(1)
1.mysql 数据库备份: 语法: MYSQLDUMP -uUSER -pPASS DataBase > Path 其中:USER 是用户名,PASS 是密码,DataBase 是数据库名, ...
- 莫队&&分块
今天兔哥讲了一波莫队,比较有趣,先加一个链接,这是她的教程 rabbithu.cnblogs.com 这里就不详细说了,其实就是两个指针来优化的暴力.一开始排序函数有问题,没用上莫队的核心思想:把查询 ...
- RPC通信框架——RCF介绍
现有的软件中用了大量的COM接口,导致无法跨平台,当然由于与Windows结合的太紧密,还有很多无法跨平台的地方.那么为了实现跨平台,支持Linux系统,以及后续的分布式,首要任务是去除COM接口. ...
- 关于form/input 的autocomplete="off"属性
转自:http://blog.sina.com.cn/s/blog_b49f96a701019m0d.html 一. 有过表单设计经验的朋友肯定知道,当我们在浏览器中输入表单信息的时候,往往input ...
- A Reusable Aspect for Memory Allocation Checking
The checking logic would be refactored into an aspect file, as follows: after(void * s) : (call($ ma ...
- Appium + python - automator定位升级版操作
# coding:utf-8 """参考博客链接:https://www.cnblogs.com/yoyoketang/p/7843819.html"" ...
- mvc3结合spring.net-依赖注入
namespace Tuzi.Models.IService { public interface IPersonService { string say(string words); } names ...
- Beta冲刺-星期五
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 Three cobblers 这个作业的目标 完成项目最后的冲刺 ...
- 【PL/SQL】匿名块、存储过程、函数、触发器
名词解释 子程序:PL/SQL的过程和函数统称为子程序. 匿名块:以DECLARE或BEGIN开始,每次提交都被编译.匿名块因为没有名称,所以不能在数据库中存储并且不能直接从其他PL/SQL块中调用. ...
- 虚拟机+linux+大杂烩
出于项目需要,需要用到linux系统.这玩意儿平时很少用,要说体验度还是windows更人性化一些. 1.虚拟机的安装,这个没说的,百度VMware直接下最新版安装就好. 2.接着是linux系统的安 ...