bcc
#include<bits/stdc++.h>
using namespace std;
#define mxn 510
struct E{
int from,to;
};
int dfn[mxn],iscut[mxn],bccno[mxn];
int step,bcc_cnt;
vector<int> v[mxn],bcc[mxn];
stack<E> s;
int dfs(int u,int fa){
int lowu=dfn[u]=++step;
int child=0;
for(int i=0;i<v[u].size();i++){
int to=v[u][i];
E e=(E){u,to};
if(!dfn[to]){
s.push(e);child++;
int lowv=dfs(to,u);
lowu=min(lowu,lowv);
if(lowv>=dfn[u]){
iscut[u]=1;
++bcc_cnt;
bcc[bcc_cnt].clear();
while(1){
E x=s.top();s.pop();
if(bccno[x.from]!=bcc_cnt){
bcc[bcc_cnt].push_back(x.from);
bccno[x.from]=bcc_cnt;
}
if(bccno[x.to]!=bcc_cnt){
bcc[bcc_cnt].push_back(x.to);
bccno[x.to]=bcc_cnt;
}
if(x.from==u&&x.to==to)break;
}
}
}
else if(dfn[to]<dfn[u]&&to!=fa)lowu=min(lowu,dfn[to]),s.push(e);
}
if(fa<0&&child==1)iscut[u]=0;
return lowu;
}
void init(){
memset(bccno,0,sizeof(bccno));
memset(dfn,0,sizeof(dfn));
memset(iscut,0,sizeof(iscut));
for(int i=1;i<mxn;i++)
v[i].clear();
step=bcc_cnt=0;
}
void bcc_do(int t){
for(int i=1;i<=t;i++)
if(!dfn[i])dfs(i,-1);
}
int main(){
int n,k=0;
while(scanf("%d",&n)&&n){
init();int t=0;k++;
while(n--){
int a,b;
scanf("%d%d",&a,&b);
t=max(t,a);t=max(t,b);
v[a].push_back(b);
v[b].push_back(a);
}
bcc_do(t);
long long ans1=0,ans2=1;
for(int i=1;i<=bcc_cnt;i++){
int c=0;
for(int j=0;j<bcc[i].size();j++)
if(iscut[bcc[i][j]])c++;
if(c==1){
ans1++;
ans2*=bcc[i].size()-1;
}
}
if(bcc_cnt==1){
ans1=2;ans2=bcc[1].size()*(bcc[1].size()-1)/2;
}
printf("Case %d: %lld %lld\n",k,ans1,ans2);
}
}
bcc的更多相关文章
- [Outlook] outlook如何实现自动CC和BCC邮件发送
由于需要在不同机器上发送邮件,最终发送的邮件会在不同的机器上,最终导致邮件丢失,以后想找也找不回来,故在网上搜索一翻,找到解决办法. 1. 实现自动CC邮件发送: 方法:使用outlook的配置规则 ...
- bzoj 2959 长跑(LCT+BCC+并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2959 [题意] n个点,提供操作:连边,修改点权,查询自定义边的方向后起点a终点b能经 ...
- poj 2117 Electricity【点双连通求删除点后最多的bcc数】
Electricity Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4727 Accepted: 1561 Descr ...
- poj 1523 SPF【点双连通求去掉割点后bcc个数】
SPF Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7246 Accepted: 3302 Description C ...
- 【UVA10765】Doves and bombs (BCC求割点后联通块数量)
题目: 题意: 给了一个联通无向图,现在问去掉某个点,会让图变成几个联通块? 输出的按分出的从多到小,若相等,输出标号从小到大.输出M个. 分析: BCC求割点后联通块数量,Tarjan算法. 联通块 ...
- UVAlive3523 Knights of the Round Table(bcc)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18122 [思路] 点-双连通分量 求出bcc,判断每个bcc是否为 ...
- 【HDU 4738 Caocao's Bridges】BCC 找桥
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4738 题意:给定一个n个节点m条边的无向图(可能不连通.有重边),每条边有一个权值.判断其连通性,若双 ...
- 【HDU 4612 Warm up】BCC 树的直径
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4612 题意:一个包含n个节点m条边的无向连通图(无自环,可能有重边).求添加一条边后最少剩余的桥的数 ...
- 百度云bcc建站
一.购买百度云服务 1.百度云bcc购买网页http://bce.baidu.com/product/bcc.html 2.买完后管理:http://console.bce.baidu.com/bcc ...
- 百度云BCC配置Apache VirtualHost 实现相同域名不同端口访问不同应用
问题描述:前戏:本人在百度云上购买了BCC虚拟服务,并购买域名,部署应用,可以正常访问(这里一切都很正常^_^). 事情正在起变化:随着开发的不断推进,工程在本地测试成功后,部署到服务器,会发现有些页 ...
随机推荐
- 阿里云提醒 网站被WebShell木马后门的处理过程
昨晚凌晨收到新客户的安全求助,说是阿里云短信提示,网站有webshell木马文件被植入,我们SINE安全公司立即成立,安全应急响应小组,客户提供了阿里云的账号密码,随即登陆阿里云进去查看到详情,登陆云 ...
- STM32进阶之串口环形缓冲区实现(转载)
转载自微信公众号“玩转单片机”,感谢原作者“杰杰”. 队列的概念 在此之前,我们来回顾一下队列的基本概念:队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO) ...
- 【Leetcode】807. Max Increase to Keep City Skyline
Description In a 2 dimensional array grid, each value grid[i][j] represents the height of a building ...
- C# 面试题 (一)
一.C# 理论 1.1.简述 private. protected. public. internal.protected internal 访问修饰符和访问权限 private : 私有成员, 在类 ...
- JVM内存管理机制和垃圾回收机制
JVM内存管理机制和垃圾回收机制 JVM结构 图片描述: java源码编译成class文件 class文件通过类加载器加载到内存 其中方法区存放的是运行时的常量.静态变量.类信息等,被所有线程共享 堆 ...
- 纯js实现复制内容到剪切板
下面的方法可以完美实现: 复制指定input 或者 textarea中的内容: 指定非输入框元素中的内容 代码如下: function copyToClipboard(elem) { // creat ...
- 线上环境HBASE-1.2.0出现oldWALs无法自动回收情况;
正常情况下,hmaster会定期清理oldWALs文件夹,一般该文件大小也就几百兆,但是我们线上 环境出现了该文件没有自动回收情况,如图: 该目录占用hdfs空间多达7.6T,浪费空间: 后来经过多番 ...
- mvc4 Forms验证存储 两种登录代码
自己也不知道网上看到的第一种居多,第二种用到的人很少,第二种代码十分简洁,就是不清楚是否有安全隐患. 要采用Forms身份验证,先要在应用程序根目录中的Web.config中做相应的设置: <a ...
- 序列化---fastjson使用
该文章主要介绍com.alibaba.fastjson的使用. 首先创建maven工程,导入fastjson.挑个热度高的版本就好了. 首先考虑下,我们通常什么时候会使用序列化和反序列化: 1.将ja ...
- Mysql性能优化四:分库,分区,分表,你们如何做?
分库分区分表概念 分区 就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的 分表 就是把一张数据量很大的表按一定的规则分解成N个具有独立存储空间的实体表.系统读写时 ...