zoukankan      html  css  js  c++  java
  • 【NOIP2014模拟10.26】战争游戏

    这题就是求割点并计算答案。
    上标:

    #include<cstdio>
    #include<algorithm>
    #define N 50010
    using namespace std;
    struct node{int v,fr;}e[N<<2];
    int n,m,tail[N],cnt=0,tot=0;
    int dfn[N],low[N],ans[N],siz[N];
    
    inline int read()
    {
    	int x=0; char c=getchar();
    	while (c<'0' || c>'9') c=getchar();
    	while (c>='0' && c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
    	return x;
    }
    
    void add(int u,int v) {e[++cnt]=(node){v,tail[u]}; tail[u]=cnt;}
    
    void dfs(int x)
    {
    	siz[x]=1,dfn[x]=low[x]=++tot;
    	int size=0;
    	for (int p=tail[x],v;p;p=e[p].fr)
    		if (!dfn[v=e[p].v])
    		{
    			dfs(v),low[x]=min(low[x],low[v]);
    			if (low[v]>=dfn[x])
    				ans[x]+=(n-siz[v]-1)*siz[v],size+=siz[v];
    			siz[x]+=siz[v];	
    		}
    		else low[x]=min(low[x],dfn[v]);
    	ans[x]+=(n-size-1)*size;
    }
    
    int main()
    {
    	n=read(),m=read();
    	for (int i=1,u,v;i<=m;i++)
    		u=read(),v=read(),add(u,v),add(v,u);
    	dfs(1);
    	for (int i=1;i<=n;i++) printf("%d
    ",ans[i]/2+(n-1));
    	return 0;
    }
    
    转载需注明出处。
  • 相关阅读:
    python第一课
    go反射----4构建
    go反射----3方法
    go反射----2值
    go生成xml
    go互斥锁Mutex
    go中的读写锁RWMutex
    go语言调用cmd
    go语言发送邮件
    go语言文件操作
  • 原文地址:https://www.cnblogs.com/jz929/p/11817649.html
Copyright © 2011-2022 走看看