Sol

就是求割点,把贡献算一下就好。。。直接tarjan

# include <bits/stdc++.h>
# define RG register
# define IL inline
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(1e5 + 10); IL ll Read(){
RG ll x = 0, z = 1; RG char c = getchar();
for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
return x * z;
} int n, fst[_], nxt[_ << 2], to[_ << 2], cnt, m, dfn[_], size[_], Index, low[_];
ll ans[_]; IL void Add(RG int u, RG int v){ to[cnt] = v; nxt[cnt] = fst[u]; fst[u] = cnt++; } IL void Dfs(RG int u, RG int ff){
dfn[u] = low[u] = ++Index; size[u] = 1; RG int sum = 0;
for(RG int e = fst[u]; e != -1; e = nxt[e]){
if(to[e] == ff) continue;
if(!dfn[to[e]]){
Dfs(to[e], u);
size[u] += size[to[e]];
low[u] = min(low[u], low[to[e]]);
if(low[to[e]] >= dfn[u]) ans[u] += 1LL * sum * size[to[e]] * 2, sum += size[to[e]];
}
else low[u] = min(low[u], dfn[to[e]]);
}
ans[u] += 1LL * sum * (n - sum - 1) * 2;
} int main(RG int argc, RG char* argv[]){
n = Read(); m = Read();
for(RG int i = 1; i <= n; ++i) ans[i] = n + n - 2, fst[i] = -1;
for(RG int i = 1, u, v; i <= m; ++i) u = Read(), v = Read(), Add(u, v), Add(v, u);
Dfs(1, 0);
for(RG int i = 1; i <= n; ++i) printf("%lld\n", ans[i]);
return 0;
}

BZOJ 1123:城市道路的更多相关文章

  1. BZOJ 1123: [POI2008]BLO

    1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1030  Solved: 440[Submit][Status] ...

  2. BZOJ 1123: [POI2008]BLO( tarjan )

    tarjan找割点..不是割点答案就是(N-1)*2, 是割点的话就在tarjan的时候顺便统计一下 ------------------------------------------------- ...

  3. BZOJ 1123 [POI2008]BLO(Tarjan算法)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1123 [题目大意] Byteotia城市有n个towns,m条双向roads. 每条r ...

  4. bzoj 1123 [POI2008]BLO——点双连通分量

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1123 点双连通分量缩点,然后各种各样. 结果不会写了.比如新连边.记录一个点是割点缩成的点还 ...

  5. BZOJ 1123 BLO

    tarjan求割点计算答案.注意不是每一棵子树都算答案.开个变量记一下. #include<iostream> #include<cstdio> #include<cst ...

  6. bzoj 1123 tarjan求割点

    #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...

  7. bzoj 1123 [POI2008]BLO Tarjan求割点

    [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1540  Solved: 711[Submit][Status][Discu ...

  8. BZOJ 1123 && Luogu P3469 [POI2008]BLO-Blockade 割点+乘法原理

    想了半天式子...最后在邓大师的帮助下想出此题....QWQ我还是太菜了 对于一个非割点,ans+=2*(n-1); 对于一个割点,ans+= #include<cstdio> #incl ...

  9. BZOJ 1123 tarjan

    题目链接 题意:一张无向图,把第$i$个点关联的所有边去掉,求无向图中有多少个点对不连通. 题解: 如果割的不是割点,那么总答案是$2\times (n-1)$. 如果是割点,要分别考虑每个子树的贡献 ...

随机推荐

  1. git命令行工作的正确姿势

    git命令行创建并提交新分支到mater分支的常规步骤 git branch new_branch git status 查看修改的文件 git add changed_files git commi ...

  2. XAMPP的配置与使用

    XAMPP的配置与使用 一.起因 一开始,我在本地手动DIY安装了WAMPP环境,其中经历了很长时间的折腾,原因是独立安装Apache和MySQL,以及PHP的时候,屡次遇到版本兼容问题,我主要的时间 ...

  3. Java实现邮箱验证

    Java实现邮箱验证 JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理email的API.它可以方便地执行一些常用的邮件传输.我们可以基于JavaMail开 ...

  4. APACHE服务器出现No input file specified.解决方案

    thinkcmf程序默认的.htaccess里面的规则: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_F ...

  5. linux下简洁优化部署tomcat应用

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本文是自己根据公司架构部署tomcat方法整理出来的文本 修 ...

  6. Java经典编程题50道之二十八

    对10个数进行排序. public class Example28 {    public static void main(String[] args) {        int[] s = { 5 ...

  7. 使用docker搭建wordpress

    前言 去年在学习docker,在看完菜鸟教程和第一本docker书后,一直想实战用一下这个技术,多用用才能熟能生巧,真正体验它的利弊.正好傅老板用docker搭完了wordpress,我也就手痒跟着搭 ...

  8. Yaf框架的配置

    http://www.laruence.com/manual/yaf.ini.html //先看一下惠新宸鸟哥yaf官网的配置说明 我们可以在php.ini中定义开发环节配置项,把本地开发设置成dev ...

  9. R语言-时间序列

    时间序列:可以用来预测未来的参数, 1.生成时间序列对象 sales <- c(18, 33, 41, 7, 34, 35, 24, 25, 24, 21, 25, 20, 22, 31, 40 ...

  10. TableLayoutPanel居中和单元格内元素居中

    在后台程序新建一个TableLayoutPanel 添加到form中,默认显示在左上角,想了很多让它居中的办法,在网上找了不少 最好的是: winform要设置控件的位置有3种: 1.控件的ancho ...