#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int,int>
#define piii pair<int, pair<int,int> > using namespace std; const int N = 1e5 + ;
const int M = + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + ;
const double eps = 1e-; int n, m, idx, dfn[N], low[N], cnt[N];
LL ans[N];
vector<int> edge[N]; void tarjan(int u) {
int sum = ;
cnt[u] = ;
dfn[u] = low[u] = ++idx;
for(int i = ; i < edge[u].size(); i++) {
int v = edge[u][i];
if(dfn[v]) {
low[u] = min(low[u], dfn[v]);
} else {
tarjan(v);
cnt[u] += cnt[v];
low[u] = min(low[u], low[v]);
if(dfn[u] <= low[v]) {
ans[u] += 1ll * sum * cnt[v];
sum += cnt[v];
}
}
}
ans[u] += 1ll * sum * (n - sum - );
} int main() {
scanf("%d%d", &n, &m);
for(int i = ; i <= m; i++) {
int u, v; scanf("%d%d", &u, &v);
edge[u].push_back(v);
edge[v].push_back(u);
} for(int i = ; i <= n; i++) {
if(!dfn[i]) {
tarjan(i);
}
} for(int i = ; i <= n; i++) {
ans[i] = ans[i] + n - << ;
printf("%lld\n", ans[i]);
}
return ;
}
/*
*/

最新文章

  1. JavaScript parseInt函数
  2. postgres-toolkit (A Victorinox for PostgreSQL DBA )
  3. 关键词:ACM &amp; 大小端 &amp; 面试官
  4. lintcode:Singleton 单例
  5. torch7在mac上的安装
  6. java代理
  7. ORA-00313错误 及其 解决方法
  8. JQuery实现隔行变色和突出显示当前行 效果
  9. Entity Framework教程
  10. c#中list使用示例
  11. 完全理解 Python 迭代对象、迭代器、生成器(转)
  12. CentOS6.8手动安装MySQL5.6(转)
  13. [转]Understand QoS at OpenSwitch
  14. 01Hadoop二次排序
  15. Python 时间复杂度
  16. Docker 使用Docker-Compose编排容器
  17. MySQL 5.7--复制延迟监控
  18. Haskell语言学习笔记(47)Arrow(2)
  19. JavaScript:零星知识
  20. HTML+CSS鼠标悬停效果

热门文章

  1. 2018-2019, ICPC, Asia Yokohama Regional Contest 2018 K
  2. Google protocol buffer的配置和使用(Linux&amp;&amp;Windows)
  3. discuz更换域名,登录不了解决
  4. T25990 [Wind Festival]Running In The Sky
  5. oracle,sqlserver,mysql常见数据库jdbc连接
  6. 【Docker】docker 入门以及一些常用指令
  7. HDU 1930 CRT
  8. 《JavaScript 实战》:JavaScript 图片滑动切换效果
  9. Python :集合类型(set)
  10. PHPMailer发送邮件(一)