【bzoj1123】BLO
1123: [POI2008]BLO
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 2222 Solved: 1090
[Submit][Status][Discuss]
Description
Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通。
Input
输入n<=100000 m<=500000及m条边
Output
输出n个数,代表如果把第i个点去掉,将有多少对点不能互通。
Sample Input
1 2
2 3
1 3
3 4
4 5
Sample Output
8
16
14
8
HINT
Source
题意:
极其简洁啊……
题解:
缩完点双后原图会变为一棵树。
每删掉一个割点,它的子树之间两两不能连接,子树与子树外的点两两不能连接。
然后惊奇的发现这题的点对要算上被删去的那个点。GG。
代码:
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio>using namespace std; #define MAXN 100005 #define MAXM 500005 #define INF 0x7fffffff #define ll long longll hd[MAXN],to[MAXM<<1]; ll nxt[MAXM<<1],siz[MAXN]; ll dfn[MAXN],low[MAXN]; ll N,M,ans[MAXN],cnt,num;inline ll read(){ll x=0,f=1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=x*10+c-'0';return x*f; }inline void tarjan(ll u){dfn[u]=low[u]=++num;ll cutnum=0;siz[u]=1;for(ll i=hd[u];i;i=nxt[i]){ll v=to[i];if(dfn[v]) low[u]=min(low[u],dfn[v]);else{tarjan(v);siz[u]+=siz[v];low[u]=min(low[u],low[v]);if(dfn[u]<=low[v]){ans[u]+=(cutnum*siz[v]);cutnum+=siz[v];}}}ans[u]+=(cutnum*(N-cutnum-1));return; }inline void addedge(ll u,ll v){to[++cnt]=v,nxt[cnt]=hd[u];hd[u]=cnt;return; }int main(){N=read(),M=read();for(ll i=1;i<=M;i++){ll u=read(),v=read();addedge(u,v),addedge(v,u);}for(ll i=1;i<=N;i++)if(!dfn[i])tarjan(i);for(ll i=1;i<=N;i++)printf("%lld\n",ans[i]*2+(N-1)*2);return 0; }
转载于:https://www.cnblogs.com/YSFAC/p/9914640.html
【bzoj1123】BLO相关推荐
- 【BZOJ1123】[POI2008]BLO【割顶】
[题目链接] 题意可见discuss. 用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上. 没注意边,数组开小了. /* Pigonometry */ ...
- 【BZOJ1123】 [POI2008]BLO (tarjan)
tarjan判断割点...拿掉一个点之后,会被分成若干个联通块,用节点个数和统计一下他们相互不能到达的个数就好. 1 const maxn=100419; 2 maxm=1000419; 3 type ...
- 【bzoj1123】[POI2008]BLO
*题目描述: Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. *输入 输入n<=1000 ...
- 【sqlplus】SQL*Plus命令使用大全
[sqlplus]SQL*Plus命令使用大全 SQL*PLUS命令的使用大全 Oracle的sql*plus是与oracle进行交互的客户端工具.在sql*plus中,可以运行 sql*plus命令 ...
- 【OH】SET System Variable Summary SQLPLUS 系统变量设置
[OH]SET System Variable Summary SQLPLUS 系统变量设置 SET System Variable Summary System Variable Descripti ...
- 【转载】C++跑酷小游戏
[说明]转载于C++跑酷小游戏_蒟蒻一枚的博客-CSDN博客_c++跑酷小游戏 感谢@蒟蒻一枚 直接上代码 #include<bits/stdc++.h> #include<wind ...
- Linux内核启动流程分析(二)【转】
转自:http://blog.chinaunix.net/uid-25909619-id-3380544.html S3C2410 Linux 2.6.35.7启动分析(第二阶段) 接着上面的分析,第 ...
- 【CentOS】利用Kubeadm部署Kubernetes (K8s)
[CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
最新文章
- 强网杯2021 BlueTeaming (内存取证)
- 我的.Net+SQLServer更新设计
- vue连线 插件_一起写一个即插即用的 Vue Loading 插件
- Redhat_as4_oracle10g自启动脚本设置
- Spring Boot 邮件发送多个收件人
- CCS7.0从安装到使用
- IMX6 dts 配置GPIO
- 双拼输入法是个啥以及我是如何学会使用它的
- 如何在uni-app中引入iconfont图标
- 宕昌一中2021高考成绩查询,有朋自远方来 | 甘肃省陇南市宕昌一中来广元中学考察交流...
- html直线箭头,HTML中利用div+CSS实现简单的箭头图标的代码
- 每日一题----空瓶子喝可乐问题
- 关于Mybatisplus查询到字段无法映射的问题
- Codeforces #199前三题
- cad卸载_这几款逆天的CAD插件,好用得不行,死也不可能卸载!
- 一起吃苦的时光,那一碗馄饨
- 《lwip学习9》-- UDP协议
- 锂电池UL1642检测报告储能电源美国安规标准锂蓄电池UL报告 IEC62133安规检测
- 计算机弹奏月亮之上,二胡独奏曲谱牧歌_速求草原牧歌二胡曲谱
- 【论文翻译】(摘要及引言)The Fourier decomposition method for nonlinear and non-stationary time series analysis