poj 2117 Electricity
- /*
- Tarjan求割点
- */
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<stack>
- #define maxn 10010
- using namespace std;
- int n,m,num,head[maxn],low[maxn],dfn[maxn],f[maxn],father[maxn];
- int point[maxn],topt,sum;
- struct node{
- int v,pre;
- }e[maxn*];
- stack<int>s;
- int init(){
- int x=;char s=getchar();
- while(s<''||s>'')s=getchar();
- while(s>=''&&s<=''){x=x*+s-'';s=getchar();}
- return x;
- }
- void Clear(){
- memset(head,-,sizeof(head));
- memset(low,,sizeof(low));
- memset(dfn,,sizeof(dfn));
- memset(f,,sizeof(f));
- memset(point,,sizeof(point));
- num=topt=sum=;
- while(!s.empty())s.pop();
- }
- void Add(int from,int to){
- e[num].v=to;
- e[num].pre=head[from];
- head[from]=num++;
- }
- void Tarjan(int x,int fa,int E){
- father[x]=fa;
- dfn[x]=low[x]=++topt;
- f[x]=;s.push(x);
- int sc=;
- for(int i=head[x];i!=-;i=e[i].pre){
- int v=e[i].v;
- if(i==(E^))continue;
- if(dfn[v]==){
- sc++;
- Tarjan(v,x,i);low[x]=min(low[x],low[v]);
- if(low[v]>=dfn[x])point[x]++;
- }
- else if(f[v])low[x]=min(low[x],dfn[v]);
- }
- if(fa<&&sc==)point[x]=;
- if(low[x]==dfn[x]){
- while(s.top()!=x){
- f[s.top()]=;s.pop();
- }
- f[s.top()]=;s.pop();
- }
- }
- void Init(){
- for(int i=;i<=m;i++){
- int u,v;
- u=init();v=init();
- u++;v++;
- Add(u,v);Add(v,u);
- }
- for(int i=;i<=n;i++)
- if(dfn[i]==){
- sum++;Tarjan(i,-,-);
- }
- }
- void Solve(){
- int mxx=-;
- for(int u=;u<=n;u++){
- if(father[u]==-){
- point[u]--;
- }
- mxx=max(mxx,point[u]);
- }
- printf("%d\n",sum+mxx);
- }
- int main()
- {
- while(){
- n=init();m=init();
- if(n==&&m==)break;
- Clear();
- Init();
- Solve();
- }
- }
poj 2117 Electricity的更多相关文章
- POJ 2117 Electricity(割点求连通分量)
http://poj.org/problem?id=2117 题意:求删除图中任意一个顶点后的最大连通分量数. 思路: 求出每个割点对应的连通分量数,注意这道题目中图可能是不连通的. 这道题目我wa了 ...
- POJ 2117 Electricity 双联通分量 割点
http://poj.org/problem?id=2117 这个妹妹我竟然到现在才见过,我真是太菜了~~~ 求去掉一个点后图中最多有多少个连通块.(原图可以本身就有多个连通块) 首先设点i去掉后它的 ...
- poj 2117 Electricity(tarjan求割点删掉之后的连通块数)
题目链接:http://poj.org/problem?id=2117 题意:求删除一个点后,图中最多有多少个连通块. 题解:就是找一下割点,根节点的割点删掉后增加son-1(son为子树个数),非根 ...
- poj 2117 Electricity【点双连通求删除点后最多的bcc数】
Electricity Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4727 Accepted: 1561 Descr ...
- POJ—— 2117 Electricity
Electricity Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5620 Accepted: 1838 Descr ...
- Electricity POJ - 2117 + SPF POJ - 1523 去除割点后求强连通分量个数问题
Electricity POJ - 2117 题目描述 Blackouts and Dark Nights (also known as ACM++) is a company that provid ...
- POJ 2117 (割点+连通分量)
题目链接: http://poj.org/problem?id=2117 题目大意:在一个非连通图中,求一个切除图中任意一个割点方案,使得图中连通分量数最大. 解题思路: 一个大陷阱,m可以等于0,这 ...
- 【POJ】2117 Electricity
无向图求割点和连通块. /* POJ2117 */ #include <iostream> #include <vector> #include <algorithm&g ...
- poj 2117(割点的应用)
题目链接:http://poj.org/problem?id=2117 思路:题目的意思是要求对于给定的无向图,删除某个顶点后,求最大的连通分量数.显然我们只有删掉割点后,连通分支数才会增加,因此我们 ...
随机推荐
- Nopcommerce架构浅谈之文件结构
应该是在两年前了,在拜读园子里大神的文章时偶然了解到有个叫NopCommerce的商城系统,苦于没有时间,各种耽误,其中研究过一段时间,也就是一个星期时间,后来又耽搁了,直到最近,随着项目进入间歇期, ...
- [HDOJ 5155] Harry And Magic Box
题目链接:HDOJ - 5155 题目大意 有一个 n * m 的棋盘,已知每行每列都至少有一个棋子,求可能有多少种不同的棋子分布情况.答案对一个大素数取模. 题目分析 算法1: 使用容斥原理与递推. ...
- NYOJ 540
为了给学弟学妹讲课,我水了一道题…… import java.util.Arrays; import java.util.Scanner; public class NYOJ540 { public ...
- Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
之所以将打包这一特殊的内容作为数据通讯的第零节,是因为如果没有通过配置打包的一些信息,则没有办法将手机端应用和手表端应用连接起来,则无法继续进行接下来的数据通讯的开发. 以下依然只针对Eclipse平 ...
- Android Wear计时器开发
记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想 ...
- 【HDOJ】5179 beautiful number
DFS. /* 5179 */ #include <iostream> #include <algorithm> #include <map> #include & ...
- 测试使用wiz来发布blog
晚上尝试了下用wiz写随笔并发布,貌似成功了,虽然操作体验和方便性上不如word,但起码它集成了这个简单的功能可以让我用:如果能让我自动新建blog文章并自动定时更新发布就完美了.2013年7月5日1 ...
- Ubuntu频率较高的操作
一.切换超级用户 由于 Ubuntu 是基于 Debian 的 linux 操作系统,在默认的情况下,是没有超级用户(superuser, root)的,但有些系统操作必须有超级用户的权限才能进行,如 ...
- 在kafka上对topic新增partition
对topic增加partition 参考官网site:http://kafka.apache.org/documentation.html#basic_ops_modify_topic 通过kafka ...
- Ural1297 Palindrome(后缀数组)
[题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=12406 [题意] 求最长回文子串. [思路] 将字符串 ...