bzoj2730(割点+分类讨论)
把割点删去后,剩下的联通块个数就是答案,方案数就是siz乘一起,但要讨论一些特殊情况,没有割点时答案直接算,一个联通块如果连接多个割点是不需算入答案的;
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=;
struct edg{
int nxt,u,v;
}e[maxn<<];
int dfn[maxn],low[maxn],ind,is[maxn];
int last[maxn],t,cas,n,m,vis[maxn],cc,tim;
ll ans=,sum,cnt,tmp,w[maxn];
void add(int x,int y){
n=max(n,max(x,y));
++t;e[t].nxt=last[x];last[x]=t;e[t].v=y;
}
void dfs(int x,int fa){
low[x]=dfn[x]=++ind;
int child=;
for(int i=last[x];i;i=e[i].nxt){
int v=e[i].v;
if(v==fa)continue;
if(!dfn[v]){
child++;
dfs(v,x);
low[x]=min(low[x],low[v]);
if(fa&&low[v]>=dfn[x]){is[x]=;++cc;}
if(child>&&!fa){is[x]=;++cc;}
}
else low[x]=min(low[x],dfn[v]);
}
}
int solve(int x){
vis[x]=;
int siz=;
for(int i=last[x];i;i=e[i].nxt){
int v=e[i].v;
if(!vis[v]){
if(is[v]){
if(w[v]!=tim){cnt++;w[v]=tim;}
}
else siz+=solve(v);
}
}
return siz;
}
int main(){
while(scanf("%d",&m)!=EOF&&m){
printf("Case %d: ",++cas);
memset(last,,sizeof(last));
memset(low,,sizeof(low));
memset(dfn,,sizeof(dfn));
memset(vis,,sizeof(vis));
memset(is,,sizeof(is));
cc=tim=sum=n=t=ind=;ans=;
int x,y;
for(int i=;i<=m;++i){
scanf("%d%d",&x,&y);
add(x,y);add(y,x);
}
for(int i=;i<=n;++i){
if(!dfn[i])dfs(i,);
}
if(!cc){printf("2 %d\n",n*(n-)/);continue;}
for(int i=;i<=n;++i)
if((!vis[i])&&(!is[i])){
++tim;
cnt=;
int tmp=solve(i);
//cout<<cnt<<' '<<tmp<<endl;
if(cnt<=){
sum++;
ans*=tmp;
}
}
printf("%lld %lld\n",sum,ans);
}
return ;
}
bzoj2730(割点+分类讨论)的更多相关文章
- Codeforces 460D Little Victor and Set --分类讨论+构造
题意:从区间[L,R]中选取不多于k个数,使这些数异或和尽量小,输出最小异或和以及选取的那些数. 解法:分类讨论. 设选取k个数. 1. k=4的时候如果区间长度>=4且L是偶数,那么可以构造四 ...
- BZOJ-1067 降雨量 线段树+分类讨论
这道B题,刚的不行,各种碎点及其容易忽略,受不鸟了直接 1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2859 ...
- UVaLive 6862 Triples (数学+分类讨论)
题意:给定一个n和m,问你x^j + y^j = z^j 的数量有多少个,其中0 <= x <= y <= z <= m, j = 2, 3, 4, ... n. 析:是一个数 ...
- 枚举(分类讨论):BZOJ 1177: [Apio2009]Oil
1177: [Apio2009]Oil Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1477 Solved: 589[Submit] Descri ...
- Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array 分类讨论连续递推dp
题意:给出一个 数列 和一个x 可以对数列一个连续的部分 每个数乘以x 问该序列可以达到的最大连续序列和是多少 思路: 不是所有区间题目都是线段树!!!!!! 这题其实是一个很简单的dp 使用的是分 ...
- 【cf789B】Masha and geometric depression(分类讨论/暴力)
B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...
- P2331 [SCOI2005]最大子矩阵 (动规:分类讨论状态)
题目链接:传送门 题目: 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 输入格式: 第一行为n,m,k( ...
- UVa 11722 Joining with Friend (几何概率 + 分类讨论)
题意:某两个人 A,B 要在一个地点见面,然后 A 到地点的时间区间是 [t1, t2],B 到地点的时间区间是 [s1, s2],他们出现的在这两个区间的每个时刻概率是相同的,并且他们约定一个到了地 ...
- Bzoj4558:分类讨论 计算几何 组合数学
国际惯例的题面: 这题让我爆肝啦......这种计数显然容斥,正好不含任何坏点的我们不会算,但是我们能算至少含零个坏点的,至少含一个坏点的,至少含两个坏点的......所以最终的答案就是(至少含零个坏 ...
随机推荐
- 使用hadoop平台运行Apriori算法
https://blog.csdn.net/laotumingke/article/details/66973260 https://blog.csdn.net/qq_24369113/article ...
- mysql链接服务器,update报错
select * from Openquery(MySQL, 'SELECT * FROM official.sys_hospital') 执行更新语句: ; 报错,错误信息: 链接服务器" ...
- Selenium 实现nvsm查询和输出ksql语句
测试环境:http://nvsm.cnki.net/kns/brief/result.aspx?dbprefix=SCDB 程序功能:对各个文献库的高级检索功能,输入检索条件做检索,提取加密的ksql ...
- phpstorm界面不停的indexing,不停的闪烁
选择 File->Invalidate Caches / Restart...->Invalidate and Restart,就行了!
- Java复习题
1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答:可以,但只能有一个public,并且public类名与文件名一致 2.Java有没有goto? ...
- 虚拟网络学习笔记之一:VXLAN
1. 什么是虚拟网络? 答:从架构角度考虑,我们可以采用与服务器虚拟化引入Hypervisor的方式一样,引入Nypervisor或者叫“虚拟网络管理平台”实现虚拟网络.虚拟网络必须像虚拟机一样,脱离 ...
- ERROR: 9-patch image C:\...\res\drawable\appwidget.9.png malformed. Frame pixels must be either solid or transparent (not intermediate alphas).
this is the problem with latest adt that is 20.0.3. you can instead rename the *.9.png to *.png and ...
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- angular 遍历foreach
1.angular遍历angular.forEach(groups,function (group) { })
- iview组件select无法手动设置值
听小伙伴说iview的作者已经修复这个bug了,因为我们的组件库是copyiview后修改的,所以没有更新代码 这里提供一个方法 <i-select :ref="'signSlectR ...