zoukankan      html  css  js  c++  java
  • BZOJ 1123 POI2008 BLO

    1123: [POI2008]BLO

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 1561  Solved: 728
    [Submit][Status][Discuss]

    Description

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

    Input

    输入n<=100000 m<=500000及m条边

    Output

    输出n个数,代表如果把第i个点去掉,将有多少对点不能互通。

    Sample Input

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

    Sample Output

    8
    8
    16
    14
    8

    HINT

     

    Source

    在tarjin求割点的同时,维护一下不联通的对数和,最后不要忘了,在点i删去后i和其他n-1个点也不连通

    #include <bits/stdc++.h>
    #define ll long long
    #define inf 1e9+10
    using namespace std;
    inline int read(){
    	int x=0;int f=1;char ch=getchar();
    	while(!isdigit(ch)) {if (ch=='-') f=-1;ch=getchar();}
    	while(isdigit(ch)) {x=x*10+ch-'0';ch=getchar();}
    	return x*f;
    } 
    const int MAXN=1e6+10;
    struct node{
    	int y,next;
    }e[MAXN];
    int linkk[MAXN],dfn[MAXN],low[MAXN],dfs_clock,siz[MAXN],m,n,len;
    ll ans[MAXN];
    inline void insert(int x,int y){
    	e[++len].y=y;e[len].next=linkk[x];linkk[x]=len;
    	e[++len].y=x;e[len].next=linkk[y];linkk[y]=len;
    }
    inline void tarjin(int x){
    	dfn[x]=low[x]=++dfs_clock;
    	ll t=0;siz[x]=1;
    	for(int i=linkk[x];i;i=e[i].next){
    		if(dfn[e[i].y]) low[x]=min(low[x],dfn[e[i].y]);
    		else{
    			tarjin(e[i].y);
    			low[x]=min(low[x],low[e[i].y]);
    			siz[x]+=siz[e[i].y];
    			if(dfn[x]<=low[e[i].y]){
    				ans[x]+=1LL*t*siz[e[i].y];
    				t+=siz[e[i].y];
    			} 
    		}
    	}
    	ans[x]+=1LL*t*(n-t-1);
    }
    int main(){
    	n=read();m=read();
    	for(int i=1;i<=m;i++){
    		int x=read();int y=read();
    		insert(x,y);
    	}
    	tarjin(1);
    	for(int i=1;i<=n;i++){
    		printf("%lld
    ",(ans[i]+n-1)*2);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    iOS数据持久化的方式
    Runtime
    <02>
    <01>
    <02>
    UIActivityIndicatorView
    <01>数据存储
    UI<10>
    UI<09>
    UI<08>
  • 原文地址:https://www.cnblogs.com/something-for-nothing/p/9069511.html
Copyright © 2011-2022 走看看