[POI2008] BLO
试题分析
分两种情况考虑。
当此点不是割点是,答案是$2\times (n-1)$。
当是割点时,我们发现这个点把树分成了若干个联通块,只要两两相乘即可。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
inline int read(){
int f=,ans=;char c=getchar();
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){ans=ans*+c-'';c=getchar();}
return f*ans;
}
const int N=;
const int M=;
struct node{
int u,v,nex;
}x[M<<];
int head[N],cnt,n,m,dfn[N],low[N],num;
void add(int u,int v){
x[cnt].u=u,x[cnt].v=v,x[cnt].nex=head[u],head[u]=cnt++;
}
int size[N],rt,ans[N];
void tarjan(int f,int fath){
dfn[f]=low[f]=++num;size[f]=;
int flag=,st=,sum=;
for(int i=head[f];i!=-;i=x[i].nex){
if(x[i].v==fath) continue;
if(!dfn[x[i].v]){
flag++;
tarjan(x[i].v,f);
size[f]+=size[x[i].v];
low[f]=min(low[f],low[x[i].v]);
if((flag>&&f==rt)||(dfn[f]<=low[x[i].v]&&f!=rt)){
ans[f]+=(size[x[i].v])*(n-size[x[i].v]);
sum+=size[x[i].v];
st=;
}
}else low[f]=min(low[f],dfn[x[i].v]);
}
if(!st) ans[f]=(n-)*;
if(st) ans[f]+=(n-+(n-sum-)*(sum+));
return;
}
signed main(){
memset(head,-,sizeof(head));
n=read(),m=read();
for(int i=;i<=m;i++){
int u=read(),v=read();
add(u,v),add(v,u);
}
for(int i=;i<=n;i++)
if(!dfn[i]) rt=i,tarjan(i,);
for(int i=;i<=n;i++) printf("%lld\n",ans[i]);
}
[POI2008] BLO的更多相关文章
- BZOJ 1123: [POI2008]BLO
1123: [POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1030 Solved: 440[Submit][Status] ...
- BZOJ1123: [POI2008]BLO
1123: [POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 614 Solved: 235[Submit][Status] ...
- BZOJ 1123: [POI2008]BLO( tarjan )
tarjan找割点..不是割点答案就是(N-1)*2, 是割点的话就在tarjan的时候顺便统计一下 ------------------------------------------------- ...
- bzoj 1123 [POI2008]BLO Tarjan求割点
[POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1540 Solved: 711[Submit][Status][Discu ...
- [POI2008]BLO(Tarjan)
[POI2008]BLO Description Byteotia城市有\(n\)个 towns \(m\)条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所 ...
- 【dfs+连通分量】Bzoj1123 POI2008 BLO
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...
- 割点判断+luogu 3469 POI2008 BLO
1.根节点,有2棵及以上子树 2.非根节点,有子节点dfn[u]<=low[v] #include <bits/stdc++.h> #define N 1000050 using n ...
- BZOJ 1123 [POI2008]BLO(Tarjan算法)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1123 [题目大意] Byteotia城市有n个towns,m条双向roads. 每条r ...
- BZOJ1123:[POI2008]BLO(双连通分量)
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n&l ...
随机推荐
- AlexNet——ImageNet Classification with Deep Convolutional Neural Networks
1. 摘要 本文的模型采用了 5 层的卷积,一些层后面还紧跟着最大池化层,和 3 层的全连接,最后是一个 1000 维的 softmax 来进行分类. 为了减少过拟合,在全连接层采取了 dropout ...
- Python图形界面开发—wxPython库的布局管理及页面切换
前言 wxPython是基于Python的跨平台GUI扩展库,对wxWidgets( C++ 编写)封装实现.GUI程序的开发中界面布局是很重要的一个部分,合理的页面布局能够给予用户良好使用体验.虽然 ...
- DWR、Comet4j在Nginx+Tomcat组合下的优化
DWR.Comet4j这类推送框架在Tomcat下运行正常,但在nginx+tomcat组合下,可能会出现断连.延迟等各种问题. 如出现此类问题,可尝试以下优化方式: 1.Nginx-----ngin ...
- Beta周王者荣耀交流协会第五次Scrum会议
1. 立会照片 成员王超,高远博,冉华,王磊,王玉玲,任思佳,袁玥全部到齐. master:王磊 2. 时间跨度 2017年11月14日 19:00 — 19:50 ,总计50分钟. 3. 地点 一食 ...
- Scrum Meeting 11.07
成员 今日任务 明日计划 用时 徐越 赵庶宏 薄霖 卞忠昊 JOSN数据解析 WebView和JavaScript交互基础 3h 武鑫 设计界面:独立完成一些简 ...
- PAT 甲级 1112 Stucked Keyboard
https://pintia.cn/problem-sets/994805342720868352/problems/994805357933608960 On a broken keyboard, ...
- Python模块Scrapy导入出错:ImportError: cannot import name xmlrpc_client
Mac(OS version: OS X Yosemite 10.10.5)上安装Scrapy模块,使用时出现: from six.moves import xmlrpc_client as xmlr ...
- express和数据库(MySQL)的交互(二)
一.安装express前面都讲了 1.express. cnpm || npm install express --save 2.中间件 a.cnpm || npm install body-pars ...
- XMind2TestCase:一个高效测试用例设计的解决方案!
一.背景 软件测试过程中,最重要.最核心就是测试用例的设计,也是测试童鞋.测试团队日常投入最多时间的工作内容之一. 然而,传统的测试用例设计过程有很多痛点: 1.使用Excel表格进行测试用例设计,虽 ...
- 【转】正确的 Composer 扩展包安装方法
简单解释 composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖: composer update - 从 c ...