首页 > 其他分享 >#10091. 「一本通 3.5 例 1」受欢迎的牛

#10091. 「一本通 3.5 例 1」受欢迎的牛

时间:2023-02-20 14:48:27浏览次数:34  
标签:10091 sc int tp ++ 3.5 low 受欢迎 dfn

#include <cstdio>
#include <iostream>
using namespace std;

const int N = 1E4 + 10;
const int M = 5E4 + 10;

struct node {
    int to, nxt;
} e[M];
int head[N], tot;

void add(int u, int v) {
    e[++tot].to = v;
    e[tot].nxt = head[u];
    head[u] = tot;
}

int dfn[N], low[N], dfncnt, s[N], tp;
int scc[N], sc;
int sz[N], n, m, out[N];

void tarjan(int u) {
    low[u] = dfn[u] = ++dfncnt, s[++tp] = u;

    for (int i = head[u]; i; i = e[i].nxt) {
        int v = e[i].to;

        if (!dfn[v])
            tarjan(v), low[u] = min(low[u], low[v]);
        else if (!scc[v])
            low[u] = min(low[u], dfn[v]);
    }

    if (dfn[u] == low[u]) {
        ++sc;

        while (s[tp] != u)
            scc[s[tp]] = sc, sz[sc]++, --tp;

        scc[s[tp]] = sc, sz[sc]++, --tp;
    }
}

int main() {
    scanf("%d%d", &n, &m);

    for (int i = 1; i <= m; i++) {
        int u, v;
        scanf("%d%d", &u, &v);
        add(u, v);
    }

    for (int i = 1; i <= n; i++)
        if (!dfn[i])
            tarjan(i);

    for (int u = 1; u <= n; u++)
        for (int i = head[u]; i; i = e[i].nxt) {
            int v = e[i].to;

            if (scc[u] == scc[v])
                continue;

            out[scc[u]]++;
        }

    int ans = 0;

    for (int i = 1; i <= sc; i++)
        if (!out[i])
            if (!ans)
                ans = i;
            else {
                cout << 0;
                return 0;
            }

    cout << sz[ans];
}

链接:https://loj.ac/p/10091

标签:10091,sc,int,tp,++,3.5,low,受欢迎,dfn
From: https://www.cnblogs.com/acmLLF/p/17137292.html

相关文章

  • 洛谷P2341/USACO03FALL 受欢迎的牛
    题意分析题目链接喜欢是单向的,喜欢有传递性……Emmm这听起来好像……对了,就是连通性问题!我们不妨将奶牛之间的喜欢关系表示为一条条单向边,怎么求明星奶牛的数量呢?这里......
  • etcd3.5.0版本集群部署
    参考地址:https://www.cnblogs.com/nf01/articles/15324715.htmlhttps://www.cnblogs.com/linuxws/p/11194403.htmlEtcd是一个分布式键值存储系统,Kuber......
  • Photoshop 2022 for Mac(ps 2022) v23.5.2激活版
    Photoshop2022中文版是一款专业图像处理软件,PS2022此次更新软件可选择项目云服务生成更准确和高质量的图像;软件界面也有了新的中性UI颜色模式,视觉效果更加高级;对神经滤波器......
  • SAS,Stata,HLM,R,SPSS和Mplus分层线性模型HLM分析学生受欢迎程度数据|附代码数据
    全文链接:http://tecdat.cn/?p=10809最近我们被客户要求撰写关于分层线性模型HLM的研究报告,包括一些图形和统计输出。本文用于比较六个不同统计软件程序(SAS,Stata,HLM,R,SPSS......
  • .NET Framework 3.5 安装失败终极解决办法
     1.情景展示错误代码:0x800F0950,操作环境:win10家庭版2.解决方案第一步:下载​​点击跳往下载地址​​第二步:拷贝通过浏览器,将下载成功后的.cab文件拷贝......
  • win10安装sql server2008遇到 无法安装.net 3.5 错误
        如图所示,多次安装无效。用镜像安装Dism/online/enable-feature/featurename:NetFX3/All/Source:H:\sources\sxs/LimitAccess也无效,出现错误为错误:0......
  • jQuery1.0.3<3.5.0xss漏洞
    起因: 升级方法:1.找到jQuery文件,我的路径为:/src/main/webapp/plugin/jquery/js/jquery.min.js2.下载需要升级的jQuery文件到指定目录,建议与升级前的jQuery文件同目录。下......
  • 3.5正则表达式和EXCESS系统
       尾数部分使用正则表达式,可以将表现形式多样的浮点数统一为一种表现型时。例如,十进制数0.75就有很多中表现形式,如图3-5所示。     单精度浮点数的正则......
  • 3.5 正则表达式和EXCESS系统
    正则表达式:尾数部分使用正则表达式(按照特定的规则来表示数据的形式即为正则表达式。除小数之外,字符串以及数据库等,也都有各自的正则表达式。),可以将表现形式多样的浮点数统......
  • Windows离线安装.net Framework3.5
    写在前面本文主要介绍在Windows离线情况下安装.NETFramework3.5运行环境使用场景在日常开发C#程序中,经常会遇到开发过程中无任何问题,但是安装到目标电脑是会无法打开......