【BZOJ1123】[POI2008]BLO【割顶】
【题目链接】
题意可见discuss。
用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上。
没注意边,数组开小了。
/* Pigonometry */
#include <cstdio>
#include <algorithm>using namespace std;typedef long long LL;const int maxn = 100005, maxm = 500005;int n, m, head[maxn], cnt, size[maxn], dfn[maxn], low[maxn], clo;
LL ans[maxn];struct _edge {int v, next;
} g[maxm << 1];inline int iread() {int f = 1, x = 0; char ch = getchar();for(; ch < '0' || ch > '9'; ch = getchar()) f = ch == '-' ? -1 : 1;for(; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';return f * x;
}inline void add(int u, int v) {g[cnt] = (_edge){v, head[u]};head[u] = cnt++;
}inline void tarjan(int x) {int sum = 0;dfn[x] = low[x] = ++clo;size[x] = 1;for(int i = head[x]; ~i; i = g[i].next) {int v = g[i].v;if(!dfn[v]) {tarjan(v);low[x] = min(low[x], low[v]);size[x] += size[v];if(low[v] >= dfn[x]) {ans[x] += (LL)sum * size[v];sum += size[v];}}else low[x] = min(low[x], dfn[v]);}ans[x] += (LL)sum * (n - sum - 1);ans[x] <<= 1;
}int main() {n = iread(); m = iread();for(int i = 1; i <= n; i++) head[i] = -1; cnt = 0;for(int i = 1; i <= m; i++) {int u = iread(), v = iread();add(u, v); add(v, u);}tarjan(1);for(int i = 1; i <= n; i++) printf("%lld\n", ans[i] + (n - 1) * 2);return 0;
}
【BZOJ1123】[POI2008]BLO【割顶】相关推荐
- [BZOJ1123]:[POI2008]BLO(塔尖)
题目传送门 题目描述 Byteotia城市有n个towns.m条双向roads. 每条road连接两个不同的towns,没有重复的road. 所有towns连通. 输入格式 输入n,m及m条边. 输出 ...
- BZOJ1123 [POI2008]BLO
tarjan求割点,乘法原理统计答案,对数答案翻倍. By:大奕哥 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int ...
- bzoj1123 [POI2008]BLO 圆方树
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. 输入n<=100 ...
- [BZOJ1123][POI2008]BLO(tarjan求点双+树形dp)
题目描述 传送门 题目大意:给出一个n个点m条边的无向连通图,问去掉每一个点之后存在多少点对不连通. 题解 tarjan求点双联通分量,对于每一个点双建立一个虚拟的节点,然后将这个点双的所有节点都连接 ...
- UVA 315 :Network (无向图求割顶)
题目链接 题意:求所给无向图中一共有多少个割顶 用的lrj训练指南P314的模板 #include<bits/stdc++.h> using namespace std; typedef ...
- 无向图的割顶、桥、BCC和eBCC相关
几个例题代码待填 割顶:若去掉一个点和与这个点相连的边后,图不再连通,则这个点是割顶. 求法:若节点\(u\)存在一棵子树\(v\)满足\(v\)中所有节点的回边都指向\(u\)及以下的节点(即\ ...
- 洛谷 P3388 【模板】割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法
洛谷 P3388 [模板]割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法 Tarjan算法,详见https://blog.csdn.net/mrcrack/article ...
- 1123: [POI2008]BLO
1123: [POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MB 链接:https://www.lydsy.com/JudgeOnline/pro ...
- bzoj 1123: [POI2008]BLO(Trajan求割点)
1123: [POI2008]BLO Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1468 Solved: 678 [Submit][Statu ...
最新文章
- js里的document对象大全(DOM操作)
- nginx location配置 - ttlsa教程系列之nginx
- 拥抱AI视觉,加油站可以很“智慧”
- SQL Server 2000 安装中的“一般性网络错误”
- Angular如何响应DOM event
- 如何做一个合格的面试官?
- c++ string类 知识点整理
- android EditText获取光标位置并安插字符删除字符
- 现在的年轻人不够努力了吗?是什么原因?
- OkHttp 3.x 源码解析之Dispatcher分发器
- Java学习不走弯路教程(16 用Ajava异步请求)
- Android应用程序组件Content Provider的启动过程源代码分析(5)
- 读msdn文档----五种提高SQL性能的方法
- Python 可轻松获取天气数据、可视化分析
- 亚马逊美国站店铺fbm自发货流程是什么?亚马逊美国站店铺fbm如何做起来?
- 马王堆汉墓帛书‧老子甲本——德经
- 什么是云计算?IDC服务器托管和云服务器(云主机)哪个更划算?
- 矩阵指数(The Exponential of a Matrix)
- n维椭球体积公式_为了方差无偏估计为什么要用n-1?
- 2020年编程语言趋势解读:编程世界之未来握于谁手?
热门文章
- WeexBox 快速上手
- C# 语言程序设计笔记
- 批量修改文件后缀名(扩展名格式),操作简单1行命令搞定!
- linux图片什么格式文件怎么打开,解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法...
- 数据库安全防护之防止被黑客攻击的策略
- springboot实现反向代理
- Vue引入百度地图警告:A Parser-blocking, cross site (i.e. different eTLD+1) script....
- 「数据游戏」:使用 ARIMA 算法预测三日后招商银行收盘价
- 两位数合并成一个四位数
- 数据库通过出生日期计算年龄