zoukankan      html  css  js  c++  java
  • [HAOI2006]受欢迎的牛(缩点)

    题面

    原题

    Solution

    考虑对于每一个环一定是满足要求的,那么他在这个环内而且所有的奶牛都要喜欢它,所以他一定没有出边且这个环是唯一的。

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    #include<iostream>
    #include<queue>
    #include<algorithm>
    #define ll long long
    #define re register
    using namespace std;
    inline int gi(){
        int f=1,sum=0;char ch=getchar();
        while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0' && ch<='9'){sum=(sum<<3)+(sum<<1)+ch-'0';ch=getchar();}
        return f*sum;
    }
    int n,m;
    const int N=10010,M=50010;
    int to[M],nxt[M],front[N],cnt,dfn[N],low[N],sta[N],s,in[N],Time,all,color[N],out[N],ans,Max,siz[N];
    void Add(int u,int v){
        to[++cnt]=v;nxt[cnt]=front[u];front[u]=cnt;
    }
    struct E{
        int a,b;
    }edge[M];
    void Tarjan(int u){
        dfn[u]=low[u]=++Time;in[u]=1;sta[++s]=u;
        for(re int i=front[u];i;i=nxt[i]){
            int v=to[i];
            if(!dfn[v]){
                Tarjan(v);
                low[u]=min(low[u],low[v]);
            }
            else if(in[v])low[u]=min(low[u],dfn[v]);
        }
        if(dfn[u]==low[u]){
            int v;all++;
            do{
                v=sta[s--];siz[all]++;
                color[v]=all;in[v]=0;
            }while(v!=u);
        }
    }
    int main(){
        n=gi();m=gi();
        for(re int i=1;i<=m;i++){
            int a=gi(),b=gi();Add(a,b);
            edge[i]=(E){a,b};
        }
        for(re int i=1;i<=n;i++)if(!dfn[i])Tarjan(i);
        for(re int i=1;i<=m;i++){
            int a=edge[i].a,b=edge[i].b;
            if(color[a]!=color[b])out[color[a]]++;
        }
        for(re int i=1;i<=all;i++)
            if(!out[i])ans++,Max=siz[i];
        if(ans!=1)puts("0");
        else printf("%d
    ",Max);
        return 0;
    }
    
  • 相关阅读:
    Nagios 监控网络流量(Windows主机和交换机)
    Nagios监控Windows服务器(NSClient++安装与应用)
    Mysql源码安装
    NETSNMP配置
    Linux 下文件解压
    cacti没有图像 排错
    菜鸟写游戏外挂
    什么是IDOC,以及IDOC的步骤
    后台跑程序(仿SM36)
    smartforms参数
  • 原文地址:https://www.cnblogs.com/cjgjh/p/9867629.html
Copyright © 2011-2022 走看看