• BZOJ 3391 Tree Cutting网络破坏


    不想写。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    #include<map>
    #define pa pair<int,int>
    #define inf 1000000000
    #define ll long long 
    using namespace std;
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    int n,cnt,ind,ans;
    int dfn[10005],low[10005],last[10005],size[10005];
    bool mark[10005];
    struct edge{int to,next;}e[20005];
    void insert(int u,int v)
    {
        e[++cnt].to=v;e[cnt].next=last[u];last[u]=cnt;
        e[++cnt].to=u;e[cnt].next=last[v];last[v]=cnt;
    }
    void tarjan(int x)
    {
        
        dfn[x]=low[x]=++ind;
        size[x]=1;
        int t=0,res=n-1;
        for(int i=last[x];i;i=e[i].next)
            if(!dfn[e[i].to])
            {
                tarjan(e[i].to);
                size[x]+=size[e[i].to];
                low[x]=min(low[x],low[e[i].to]);
                if(low[e[i].to]>=dfn[x])
                {
                    t=max(t,size[e[i].to]);
                    res-=size[e[i].to];
                }
            }
            else low[x]=min(low[x],dfn[e[i].to]);
        t=max(t,res);
        if(t<=n/2)
        {
            ans++;
            mark[x]=1;
        }
    }
    int main()
    {
        n=read();
        for(int i=1;i<n;i++)
        {
            int u=read(),v=read();
            insert(u,v);
        }
        for(int i=1;i<=n;i++)if(!dfn[i])tarjan(i);
        if(!ans)puts("NONE");
        else 
            for(int i=1;i<=n;i++)
                if(mark[i])printf("%d
    ",i);
        return 0;
    }
  • 相关阅读:
    21.面向对象:多态与多态性、面向对象进阶:内置方法,反射。异常处理
    mysql 复习
    Python之math模块
    mysql数据类型转换
    Remmina
    JWT校验流程源码
    JWT签发token
    elasticsearch使用
    Flask基础
    初识Flask
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/5717960.html
Copyright © 2020-2023  润新知