【题目链接】

题意可见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【割顶】相关推荐

  1. [BZOJ1123]:[POI2008]BLO(塔尖)

    题目传送门 题目描述 Byteotia城市有n个towns.m条双向roads. 每条road连接两个不同的towns,没有重复的road. 所有towns连通. 输入格式 输入n,m及m条边. 输出 ...

  2. BZOJ1123 [POI2008]BLO

    tarjan求割点,乘法原理统计答案,对数答案翻倍. By:大奕哥 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int ...

  3. bzoj1123 [POI2008]BLO 圆方树

    Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. 输入n<=100 ...

  4. [BZOJ1123][POI2008]BLO(tarjan求点双+树形dp)

    题目描述 传送门 题目大意:给出一个n个点m条边的无向连通图,问去掉每一个点之后存在多少点对不连通. 题解 tarjan求点双联通分量,对于每一个点双建立一个虚拟的节点,然后将这个点双的所有节点都连接 ...

  5. UVA 315 :Network (无向图求割顶)

    题目链接 题意:求所给无向图中一共有多少个割顶 用的lrj训练指南P314的模板 #include<bits/stdc++.h> using namespace std; typedef ...

  6. 无向图的割顶、桥、BCC和eBCC相关

    几个例题代码待填 割顶:若去掉一个点和与这个点相连的边后,图不再连通,则这个点是割顶. ​ 求法:若节点\(u\)存在一棵子树\(v\)满足\(v\)中所有节点的回边都指向\(u\)及以下的节点(即\ ...

  7. 洛谷 P3388 【模板】割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法

    洛谷  P3388 [模板]割点(割顶)  根+非根+dfn[]+low[]+不一样的Tarjan算法 Tarjan算法,详见https://blog.csdn.net/mrcrack/article ...

  8. 1123: [POI2008]BLO

    1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MB 链接:https://www.lydsy.com/JudgeOnline/pro ...

  9. bzoj 1123: [POI2008]BLO(Trajan求割点)

    1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1468  Solved: 678 [Submit][Statu ...

最新文章

  1. js里的document对象大全(DOM操作)
  2. nginx location配置 - ttlsa教程系列之nginx
  3. 拥抱AI视觉,加油站可以很“智慧”
  4. SQL Server 2000 安装中的“一般性网络错误”
  5. Angular如何响应DOM event
  6. 如何做一个合格的面试官?
  7. c++ string类 知识点整理
  8. android EditText获取光标位置并安插字符删除字符
  9. 现在的年轻人不够努力了吗?是什么原因?
  10. OkHttp 3.x 源码解析之Dispatcher分发器
  11. Java学习不走弯路教程(16 用Ajava异步请求)
  12. Android应用程序组件Content Provider的启动过程源代码分析(5)
  13. 读msdn文档----五种提高SQL性能的方法
  14. Python 可轻松获取天气数据、可视化分析
  15. 亚马逊美国站店铺fbm自发货流程是什么?亚马逊美国站店铺fbm如何做起来?
  16. 马王堆汉墓帛书‧老子甲本——德经
  17. 什么是云计算?IDC服务器托管和云服务器(云主机)哪个更划算?
  18. 矩阵指数(The Exponential of a Matrix)
  19. n维椭球体积公式_为了方差无偏估计为什么要用n-1?
  20. 2020年编程语言趋势解读:编程世界之未来握于谁手?

热门文章

  1. WeexBox 快速上手
  2. C# 语言程序设计笔记
  3. 批量修改文件后缀名(扩展名格式),操作简单1行命令搞定!
  4. linux图片什么格式文件怎么打开,解决Linux平台下无法打开jpg文件(提示: “Not a JPEG file: starts with 0x89 0x50”)的方法...
  5. 数据库安全防护之防止被黑客攻击的策略
  6. springboot实现反向代理
  7. Vue引入百度地图警告:A Parser-blocking, cross site (i.e. different eTLD+1) script....
  8. 「数据游戏」:使用 ARIMA 算法预测三日后招商银行收盘价
  9. 两位数合并成一个四位数
  10. 数据库通过出生日期计算年龄