题目:Redundant Paths

总结 :这道题先给一个无向连通图,问加最少的边使这个图成为双连通图。
可以先用tarjan求出桥,并且给桥做出标记。然后再用dfs给每一个点标记一个新的编号,这个地方需要利用br数组,此时的br数组为1 的是保存的是桥的起点和终点。然后统计这个新图的度为1的点
答案 = (新图度为1的点+1)/2

#include <stdio.h>
#include <string.h>
#include <map>
#include <algorithm>
using namespace std;
typedef pair<int,int>P;
const int N = 11005;
const int mod = 1000000007;struct st{int x,y;
}a[N<<2];
int dfn[N],low[N],head[N],ans[N];
bool br[N];
int colour[N];//对新的图进行染色
int n,cnt,len,m,dcc;
struct str{int v;int next;
}e[N<<5];void init(){memset(ans,0,sizeof ans);memset(br,0,sizeof br);memset(colour,0,sizeof colour);memset(head,0,sizeof head);memset(dfn,0,sizeof dfn);memset(low,0,sizeof low);cnt = 1;len = 0;dcc = 0;
}
void add(int x,int y){e[++cnt].v = y;e[cnt].next = head[x];head[x] = cnt;
}
void tarjan(int u,int in){dfn[u] = low[u] = ++len;for(int i = head[u];i;i = e[i].next){int v = e[i].v;int x = u,y = v;if(!dfn[v]){tarjan(v,i);low[u] = min(low[u],low[v]);if(dfn[u] < low[v]){br[i] = br[i^1] = 1;}}else if(i != (in^1)){low[u] = min(low[u],dfn[v]);}}
}
void dfs(int u){colour[u] = dcc;for(int i = head[u];i;i = e[i].next){int v = e[i].v;//对桥不进行访问,对进行遍历的点不进行访问if(colour[v] || br[i]) continue;dfs(v);}
}
void solve(){init();for(int i = 0;i < m;i++){int x,y;scanf("%d%d",&x,&y);a[i].x = x;a[i].y = y;add(x,y);add(y,x);}//求桥for(int i = 1;i <= n;i++){if(!dfn[i]){tarjan(i,0);}}//对新图进行染色for(int i = 1;i <= n;i++){if(!colour[i]){++dcc;dfs(i);}}for(int i = 0;i < m;i++){if(colour[a[i].x] == colour[a[i].y]) continue;else {ans[colour[a[i].x]]++;ans[colour[a[i].y]]++;}}int sum = 0;for(int i = 1;i <= n;i++){if(ans[i] == 1) sum++;}printf("%d\n",(sum+1)/2);
}
int main(){while(~scanf("%d%d",&n,&m)){solve();}return 0;
}

Redundant Paths相关推荐

  1. POJ3177 Redundant Paths

    POJ3177 Redundant Paths 文章目录 Description 题意: 题解: 代码: Time Limit: 1000MS Memory Limit: 65536K Total S ...

  2. [POJ3177]Redundant Paths(双联通)

    在看了春晚小彩旗的E技能(旋转)后就一直在lol--额抽点时间撸一题吧-- Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Tota ...

  3. POJ 3177 Redundant Paths POJ 3352 Road Construction(双连接)

    POJ 3177 Redundant Paths POJ 3352 Road Construction 题目链接 题意:两题一样的.一份代码能交.给定一个连通无向图,问加几条边能使得图变成一个双连通图 ...

  4. Redundant Paths POJ - 3177(tarjan+边双连通分量)

    题意: 有n个牧场,要求从一个牧场到另一个牧场,要求至少要有2条独立的路可以走.现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路.两条独立的路是指:没有公共边的路,但可以经过 ...

  5. 【POJ - 3177】Redundant Paths(边双连通分量,去重边)

    题干: In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1.. ...

  6. POJ 3177 Redundant Paths(边双联通分量)

    题目描述: In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1 ...

  7. POJ - 3177 Redundant Paths 双联通补边

    题目链接 题意:给出一个多条边问需要加几条变才能变成双连通图. 首先要缩点,缩点之后就是变成了一个没有强连通分量的图,这时候只需要统计入度为1的点有多少个,然后通过观察发现将点两两连接即可,answe ...

  8. POJ 3177 Redundant Paths (边双连通+缩点)

    <题目链接> <转载于 >>>  > 题目大意: 有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走.现已有m条路,求至少要新 ...

  9. poj 3177 Redundant Paths

    双连通分量 题意:给一个无向图,问要添加多少条边形成边双连通分量.注意图一开始是连通的,所以只要从一个点开始dfs一次就行了,另外这图有重边,(1,2)(2,1)这样,则1,2就形成了一个边双连通分量 ...

  10. 无向图强联通分量-洛谷 P2860 [USACO06JAN]冗余路径Redundant Paths

    https://www.luogu.org/problem/show?pid=2860 这个就是无向图的强联通: 有向图的两点再一个分量里,是x可以到y,y也可到x: 但无向图本来就是双向的,所以我们 ...

最新文章

  1. 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
  2. QT 建立信号和槽的联系(事件处理)
  3. 使用Spring-data-jpa(1)(三十)
  4. linux ifconfig命令参数及用法详解--linux查看配置网卡命令
  5. windows文件与Linux文件互转
  6. ssm访问html乱码_SpringMVC+jdbc和SSM整合
  7. 实训项目四 powerpoint 综合应用_【深化改革结硕果】新疆番茄综合精深加工关键技术及产业化应用项目取得重大突破...
  8. 2.重新安装CM服务
  9. 18、TWS和IB中的错误处理信息
  10. SDD-FIQA基于人脸相似度分布距离的无监督质量评估方法
  11. Oracle rman中restore和recover的区别
  12. 关于良率:交期延误、报废补料、不做退款都是什么情况?
  13. 微信扫码小绿盒支持支付宝+微信收款教程
  14. 基于Android的文本语音朗读器的设计与实现(有声小说APP)
  15. 云计算与大数据---21大数据张舒
  16. strcpy和strncpy区别
  17. 小米手机市场份额为何下降
  18. 微信内置浏览器无法打开APP下载链接的解决方案
  19. [车联网安全自学篇] ATTACK安全之Frida反调试检测
  20. 【QQ空间】免费漂浮物代码

热门文章

  1. 一个网站的建设步骤(写给新手)
  2. 开发DSP硬件驱动程序的一种方法
  3. 计算机驱动有必要更新,电脑各硬件驱动程序是否越新越好?需要经常更新驱动程序吗?...
  4. c r 语言教程,R语言初级教程
  5. 系统性谈谈软件可靠性——第4讲:软件可靠性测试
  6. Java JUI打字小游戏项目
  7. 用51单片机演奏Beyond《海阔天空》
  8. php通过函数怎么禁止百度蜘蛛抓取,怎么屏蔽百度蜘蛛(Baiduspider)抓取网站
  9. 符号三角形问题 java_算法java实现--回溯法--符号三角形问题
  10. 计算机解释英文缩写x,计算机组成原理英文缩写解释