these days I‘m tired!,but very happy。。。

#include<cstdio>
#include<cstring>
#include<stack>
#include<vector>
#include<algorithm>
using namespace std; typedef long long lld; const int MAXN = <<; struct Edge
{
int u,v;
}; vector <int> G[MAXN],bcc[MAXN];
stack <Edge> S;
int pre[MAXN],is_cut[MAXN],bccno[MAXN];
int bcc_cnt,dfs_clock; int dfs(int u,int fa)
{
int low_u = pre[u] = ++dfs_clock;
int child = ;
for(int i = ;i < G[u].size();i++)
{
int v = G[u][i];
Edge e = (Edge){u,v};
if(!pre[v])
{
child++;
S.push(e);
int low_v = dfs(v,u);
low_u = min(low_u,low_v);
if(low_v >= pre[u])
{
is_cut[u] = ;
bcc_cnt++;
bcc[bcc_cnt].clear();
for(;;)
{
Edge x = S.top();
S.pop();
if(bccno[x.u] != bcc_cnt)
{
bcc[bcc_cnt].push_back(x.u);
bccno[x.u] = bcc_cnt;
}
if(bccno[x.v] != bcc_cnt)
{
bcc[bcc_cnt].push_back(x.v);
bccno[x.v] = bcc_cnt;
}
if(x.u == u && x.v == v)
break;
}
}
}
else if(pre[v] < pre[u] && v != fa)
{
S.push(e);
low_u = min(low_u,pre[v]);
}
}
if(child == && fa == -) is_cut[u] = ;
return low_u;
} void find_bcc(int n)
{
memset(pre,,sizeof(pre));
memset(is_cut,,sizeof(is_cut));
memset(bccno,,sizeof(bccno));
dfs_clock = bcc_cnt = ;
for(int i = ;i < n;i++)
if(!pre[i]) dfs(i,-);
} int main()
{
int cas = ;
int n;
while(~scanf("%d",&n) && n)
{
for(int i = ;i < *n;i++)
G[i].clear();
int max_id = ;
for(int i = ;i < n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
max_id = max(max_id,a);
max_id = max(max_id,b);
a--;b--;
G[a].push_back(b);
G[b].push_back(a);
} find_bcc(max_id);
//printf("bcc_cnt = %d\n",bcc_cnt); int ans_num = ;
lld ans_count = ;
if(bcc_cnt == )
{
ans_num = ;
ans_count = (lld)bcc[].size()*(bcc[].size()-)/;
}
else
{
for(int i = ;i <= bcc_cnt;i++)
{
int cc = ;
for(int j = ;j < bcc[i].size();j++)
if(is_cut[bcc[i][j]] == )
cc++;
if(cc == )
{
ans_num++;
ans_count *= bcc[i].size()-;
}
}
}
printf("Case %d: %d %lld\n",++cas,ans_num,ans_count);
}
return ;
}

Mining Your Own Business UVALive - 5135(点双联通分量)的更多相关文章

  1. 训练指南 UVALive - 3523 (双联通分量 + 二分图染色)

    layout: post title: 训练指南 UVALive - 3523 (双联通分量 + 二分图染色) author: "luowentaoaa" catalog: tru ...

  2. 训练指南 UVALive - 5135 (双连通分量)

    layout: post title: 训练指南 UVALive - 5135 (双连通分量) author: "luowentaoaa" catalog: true mathja ...

  3. 【UVA10972】RevolC FaeLoN (求边双联通分量)

    题意: 给你一个无向图,要求把所有无向边改成有向边,并且添加最少的有向边,使得新的有向图强联通. 分析: 这题的解法还是很好想的.先用边双联通分量缩点,然后找新图中入度为0和为1的点,入度为0则ans ...

  4. lightoj 1300 边双联通分量+交叉染色求奇圈

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1300 边双连通分量首先dfs找出桥并标记,然后dfs交叉着色找奇圈上的点.这题只要求在 ...

  5. HDU5409---CRB and Graph 2015多校 双联通分量缩点

    题意:一个联通的无向图, 对于每一条边, 若删除该边后存在两点不可达,则输出这两个点, 如果存在多个则输出第一个点尽可能大,第二个点尽可能小的. 不存在输出0 0 首先 若删除某一条边后存在多个联通分 ...

  6. poj2942(双联通分量,交叉染色判二分图)

    题意:一些骑士,他们有些人之间有矛盾,现在要求选出一些骑士围成一圈,圈要满足如下条件:1.人数大于1.2.总人数为奇数.3.有仇恨的骑士不能挨着坐.问有几个骑士不能和任何人形成任何的圆圈. 思路:首先 ...

  7. 『Tarjan算法 无向图的双联通分量』

    无向图的双连通分量 定义:若一张无向连通图不存在割点,则称它为"点双连通图".若一张无向连通图不存在割边,则称它为"边双连通图". 无向图图的极大点双连通子图被 ...

  8. 大白书中无向图的点双联通分量(BCC)模板的分析与理解

    对于一个无向图,如果任意两点至少存在两条点不重复(除起点和终点外无公共点)的路径,则这个图就是点双联通. 这个要求等价于任意两条边都存在于一个简单环(即同一个点不能在圈中出现两次)中,即内部无割点. ...

  9. 洛谷P2860 [USACO06JAN]冗余路径Redundant Paths(tarjan求边双联通分量)

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

随机推荐

  1. 【BZOJ4560】[NOI2016]优秀的拆分

    [BZOJ4560][NOI2016]优秀的拆分 题面 bzoj 洛谷 题解 考虑一个形如\(AABB\)的串是由两个形如\(AA\)的串拼起来的 那么我们设 \(f[i]\):以位置\(i\)为结尾 ...

  2. Zabbix学习之路(一)之Zabbix安装

    一.Zabbix环境准备 [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@linux-n ...

  3. datax源代码编译安装

    what is DataX ? DataX是阿里巴巴集团内被广泛使用的离线数据同步工具/平台. 实现包括MySQL,SQL Server,Oracle,PostgreSQL,HDFS,Hive,HBa ...

  4. 安装支持elasticsearch使用sql查询插件

    一.ElasticSearch-SQL介绍 ElasticSearch-SQL(后续简称es-sql)是ElasticSearch的一个插件,提供了es 的类sql查询的相关接口.支持绝大多数的sql ...

  5. Appium 运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for (转)

    现象:Appium运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported f ...

  6. arcgis10.2怎么把地理坐标系转化为投影坐标系(平面,米制坐标) arcmap 10.2 从 WGS_1984 转 Beijing_1954

    方法一:在Arcmap中转换:从 WGS_1984 转 Beijing_19541.加载要转换的数据,右下角为经纬度2.点击视图——数据框属性——坐标系统3.导入或选择正确的坐标系(如选:Beijin ...

  7. Cross origin requests are only supported for protocol schemes: http, data, chrome,chrome-extension的问题

    Cross origin requests are only supported for protocol schemes: http, data, chrome,chrome-extension的问 ...

  8. ECharts模块化使用5分钟上手

    什么是EChats? 一句话: 一个数据可视化(图表)Javascript框架,详细?移步这里,类似(推荐)的有 HighCharts,其他? 嗯,先看看吧-- 快速上手: 模块化单文件引入(推荐). ...

  9. Python Requests库简单入门

    我对Python网络爬虫的学习主要是基于中国慕课网上嵩天老师的讲授,写博客的目的是为了更好触类旁通,并且作为学习笔记之后复习回顾. 1.引言 requests 库是一个简洁且简单的处理HTTP请求的第 ...

  10. HDU 5433 Xiao Ming climbing 动态规划

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5433 Xiao Ming climbing Time Limit: 2000/1000 MS (Ja ...