Description

Byteotia城市有n个 towns, m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通。

Input

输入n和m。( n<=100000 ,m<=500000 )

Output

输出n个数,其中第i个整数表示把与节点i关联的所有边去掉之后(不去掉节点i本身),无向图中有多少个有序点对(x,y),满足x和y不连通。

Sample Input

5 5
1 2
2 3
1 3
3 4
4 5

Sample Output

8
8
16
14
8

限制与约定

时间限制:1s

空间限制:128MB

std:

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#define LL long long
using namespace std;
const int maxn=1e5+;
const int maxm=5e5+;
inline int read()
{
int a=;bool b=;char x=getchar();
while(x<''||''<x){
if(x=='-')b=;
x=getchar();
}
while(''<=x&&x<=''){
a=(a<<)+(a<<)+x-'';
x=getchar();
}
return b?a:-a;
}
int first[maxn],next[maxm*],to[maxm*],edge_count;
inline void add(int x,int y){
edge_count++;
to[edge_count]=y;
next[edge_count]=first[x];
first[x]=edge_count;
}
int pre[maxn],low[maxn],root,Time;
LL ans[maxn],size[maxn];
int n,m;
void tarjan(int u){
pre[u]=low[u]=++Time;
size[u]=; int temp=;
long long cnt=n-;
for(int i=first[u];i;i=next[i]){
int v=to[i];
if(pre[v]){
low[u]=min(low[u],pre[v]);
}
else{
tarjan(v);
low[u]=min(low[u],low[v]);
size[u]+=size[v]; if(pre[u]<=low[v]){
temp++;
if(u!=root || temp>){
ans[u]+=size[v]*(n-size[v]-);
cnt-=size[v];
}
}
}
}
ans[u]+=cnt*(n-cnt-);
}
int main()
{
n=read();m=read();
const LL N=n+n-;
for(int i=,x,y;i<=m;i++){
x=read();y=read();
add(x,y);add(y,x);
}
for(int i=;i<=n;i++){
if(pre[i])continue;
root=i;
tarjan(i);
}
for(int i=;i<=n;i++){
printf("%lld\n",ans[i]+N);
}
return ;
}

奇葩问题汇总{

1.数据范围为>maxint,故要开long long

2.其中不影响结果的变量cnt如果开int也会影响结果,

因为每一步都要考虑强制转换的问题!!!特别要注意,否则会傻逼!!!

3.因为是双向点对,所以不用复杂的记录当前已经分理出多少点->res[u]

直接乘就行还会变快,!!!而且类似的求单向点对也可以求完双向再/2即可,

排列组合很重要!!!

}

BLO(bzoj1123)的更多相关文章

  1. 【BZOJ1123】 [POI2008]BLO (tarjan)

    tarjan判断割点...拿掉一个点之后,会被分成若干个联通块,用节点个数和统计一下他们相互不能到达的个数就好. ; maxm=; type edgetype=record toward,next:l ...

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

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

  3. [POI2008]BLO(Tarjan)

    [POI2008]BLO Description Byteotia城市有\(n\)个 towns \(m\)条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所 ...

  4. NLPIR(ICTCLAS)分析包的使用记录

    前段时间使用了HanLP一个纯JAVA分词工具包,后来老大说分词效果不是很好,需要换一个分词工具.于是推荐了一个分词工具——NLPIR,它是中科院XXX研发的一个分词工具.这个分词工具只用C/C++写 ...

  5. Android开源框架:Universal-Image-Loader解析(一)

    之前花了一些时间,好好看了下这个框架,于是决定再重新梳理一下,把整个处理方法和流程过一遍,俗话说:温故而知新嘛 关于Universal-Image-Loader此框架的各种优点,稍微介绍下,网上应该也 ...

  6. Android开发环境搭建相关文章列表(转载)

    Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...

  7. 转:AM335x启动流程(BootRom->MLO->Uboot)

    http://blog.chinaunix.net/uid-28458801-id-3486399.html 参考文件: 1,AM335x ARM Cortex-A8 Microprocessors ...

  8. rtems在mini2440上的移植(ubuntu)

    第一步 建立编译环境,rtems的编译环境需要使用newlib的库,所以ubuntu自带的gcc是不可以的,我是参照下面的博客才编译成功的,之前走了好多弯路. http://blog.sina.com ...

  9. Linux内核异常处理体系结构详解(一)【转】

    转自:http://www.techbulo.com/1841.html 2015年11月30日 ⁄ 基础知识 ⁄ 共 6653字 ⁄ 字号 小 中 大 ⁄ Linux内核异常处理体系结构详解(一)已 ...

随机推荐

  1. HDU1166-ZKW树

    单点修改,区间求和 // // Created by helica on 2018/3/18. // //zkw #include <cstdio> #include <cstrin ...

  2. CF700E E. Cool Slogans

    https://codeforces.com/contest/700/problem/E 题解:https://www.luogu.org/problemnew/solution/CF700E 其实就 ...

  3. yk-随记

    $config = Loader::loadConfig('smarty');

  4. 【Linux】Jenkins安装

    安装环境准备 操作系统:Linux(CentOS7) 软件:jdk,安装及配置步骤见Linux安装jdk 软件:tomcat,安装及配置见Linux安装tomcat Jenkins安装 由于Jenki ...

  5. LOJ#2304 泳池

    题意:有一个1001 * n的矩形,每个位置有q的概率为1.求紧贴下边界的最大的全1子矩形面积恰为k的概率.n <= 1e9,k <= 1000. 解:只需考虑每一列最下面一个0的位置. ...

  6. 小白在 Eclipse如何避免启动时自动building workspace和validating

    问题: Eclipse启动时会出现如下的情况(时间比较长): 原因所在: Validating 意为验证,validating... 逐个的检查每一个文件,Eclipse在启动时自动验证代码和创建wo ...

  7. cookie session token

    HTTP    HTTP是无状态(stateless)的网络协议.HTTP协议自身不对请求和响应之间的通信状态进行保存.也就是说HTTP协议对于发送过的请求或响应都不做持久化处理. 为了实现保持状态功 ...

  8. java强引用 软引用 弱引用 虚引用

    https://www.cnblogs.com/yw-ah/p/5830458.html Java四种引用包括强引用,软引用,弱引用,虚引用. 强引用: 只要引用存在,垃圾回收器永远不会回收Objec ...

  9. 简单的makefile

    单一程序 准备一个hello.c #include <stdio.h> int main(void) { printf("Hello World!\n"); } gcc ...

  10. 关于JSF

    JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准).它提供了一种以组件为中心的 ...