POJ 3352 Road Construction 双联通分量 难度:1
http://poj.org/problem?id=3352
有重边的话重边就不被包含在双连通里了
割点不一定连着割边,因为这个图不一定是点连通,所以可能出现反而多增加了双连通分量数的可能
必须要用割边的思路来看
#include <cstdio>
#include <vector >
using namespace std;
const int maxn=1001;
vector<int >G[maxn]; int low[maxn],dfn[maxn];
bool vis[maxn]; int dg[maxn]; int dep,cnt;
void dfs(int s,int f){
low[s]=dfn[s]=++dep;
vis[s]=true;
for(int i=0;i<G[s].size();i++){
int t=G[s][i];
if(t==f)continue;
if(!vis[t]){
dfs(t,s);
low[s]=min(low[s],low[t]);
}
else low[s]=min(low[s],dfn[t]);
}
}
int n,r;
int main(){
scanf("%d%d",&n,&r);
int f,t;
while(r--){scanf("%d%d",&f,&t);G[f].push_back(t);G[t].push_back(f);}
dfs(1,-1); for(int i=1;i<=n;i++){
for(int j=0;j<G[i].size();j++){
if(low[i]!=low[G[i][j]])dg[low[i]]++;
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(dg[i]==1)ans++;
}
ans=(ans+1)/2;
printf("%d\n",ans);
return 0;
}
POJ 3352 Road Construction 双联通分量 难度:1的更多相关文章
- POJ 3177 Redundant Paths POJ 3352 Road Construction(双连接)
POJ 3177 Redundant Paths POJ 3352 Road Construction 题目链接 题意:两题一样的.一份代码能交.给定一个连通无向图,问加几条边能使得图变成一个双连通图 ...
- POJ 3352 Road Construction ; POJ 3177 Redundant Paths (双联通)
这两题好像是一样的,就是3177要去掉重边. 但是为什么要去重边呢??????我认为如果有重边的话,应该也要考虑在内才是. 这两题我用了求割边,在去掉割边,用DFS缩点. 有大神说用Tarjan,不过 ...
- POJ 3352 Road Construction (边双连通分量)
题目链接 题意 :有一个景点要修路,但是有些景点只有一条路可达,若是修路的话则有些景点就到不了,所以要临时搭一些路,以保证无论哪条路在修都能让游客到达任何一个景点 思路 :把景点看成点,路看成边,看要 ...
- POJ 3177 Redundant Paths 双联通分量 割边
http://poj.org/problem?id=3177 这个妹妹我大概也曾见过的~~~我似乎还没写过双联通分量的blog,真是智障. 最少需要添多少条边才能使这个图没有割边. 边双缩点后图变成一 ...
- POJ 3694Network(Tarjan边双联通分量 + 缩点 + LCA并查集维护)
[题意]: 有N个结点M条边的图,有Q次操作,每次操作在点x, y之间加一条边,加完E(x, y)后还有几个桥(割边),每次操作会累积,影响下一次操作. [思路]: 先用Tarjan求出一开始总的桥的 ...
- Tarjan算法求解桥和边双连通分量(附POJ 3352 Road Construction解题报告)
http://blog.csdn.net/geniusluzh/article/details/6619575 在说Tarjan算法解决桥和边双连通分量问题之前我们先来回顾一下Tarjan算法是如何 ...
- poj 3352 Road Construction【边双连通求最少加多少条边使图双连通&&缩点】
Road Construction Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10141 Accepted: 503 ...
- poj 3177&&3352 求边双联通分量,先求桥,然后求分量( 临界表代码)
/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h>//用容器写在3177这个题上会超内存,但 ...
- hdu 3352 求边双联通分量模板题(容器)
/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h> #include<string.h ...
随机推荐
- 网站精准查询IP
分享一些网站能精准查询IP的 https://www.chaidu.com/App/Web/IP/ http://www.ipip.net/ip.html http://www.hao7188.com ...
- linux下如何查看当前机器提供了哪些服务
答:使用netstat工具 在命令行下输入netstat -atun即可列出当前机器提供的服务 netstat各选项解析: -a 列出所有服务 -t 列出tcp相关 -u 列出udp相关 -n 以数字 ...
- BZOJ1307: 玩具 单调队列
Description 小球球是个可爱的孩子,他喜欢玩具,另外小球球有个大大的柜子,里面放满了玩具,由于柜子太高了,每天小球球都会让妈妈从柜子上拿一些玩具放在地板上让小球球玩. 这天,小球球把所有的N ...
- 【Coursera】Security Introduction -Eighth Week(1)
Security Introduction People With Bad Intent 今天,Bob 向 Alice 发送了一条 "Hello,Allice!" 的信息,他们希望 ...
- 解决方案:c调用python,PyImport_Import或者PyImport_ImportModule总是返回为空
下面c_python_utils.h是处理工具函数,test.cpp是测试程序,hello.py是python类 可是当我集成到项目中的时候,PyImport_Import总是返回为空,起初我以为是i ...
- Codeforces Round #406 (Div. 2) D. Legacy 线段树建模+最短路
D. Legacy time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- flash破解工具/flash decompiler
如果想比较方便地参观浏览一下flash(swf)文件里面的内容,推荐使用国外免费开源的工具JPEXS Free Flash Decompiler. 传送门:https://www.free-decom ...
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 问题解决方法
在用maven配置mybatis环境时出现此BindingExceptiony异常,发现在classes文件下没有mapper配置文件,应该是maven项目没有扫描到mapper包下的xml文件,在p ...
- 利用 AttachThreadInput 改变其它进程的输入法状态
利用 AttachThreadInput 和 WM_INPUTLANGCHANGEREQUEST 消息 改变 其它 进程 的 输入 状态 ? 众所周知,通过 ActivateKeyboardLayou ...
- LeetCode--119--杨辉三角II
问题描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 进阶: 你可以优化你 ...