#P2002. 消息扩散(Message Diffusion)

0
    ID: 8493 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P2002强连通分量与 Tarjan 算法强连通分量Tarjan图论CSP-S

消息扩散(Message Diffusion)

消息扩散(Message Diffusion)

题目描述

有 nn 个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出 nn 个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有 nn 个城市都得到消息。

输入格式

第一行两个整数 n,mn, m,表示 nn 个城市,mm 条单向道路。

以下 mm 行,每行两个整数 b,eb, e 表示有一条从 bb 到 ee 的道路,道路可以重复或存在自环。

输出格式

一行一个整数,表示至少要在几个城市中发布消息。

样例输入 #1

5 4
1 2
2 1
2 3
5 1

样例输出 #1

2

数据范围

【样例解释 #1】

样例中在 4,54, 5 号城市中发布消息。

【数据范围】

对于 20%20 \% 的数据,n≤200n \le 200;
对于 40%40 \% 的数据,n≤2000n \le 2000;
对于 100%100 \% 的数据,1≤n≤1051 \le n \le {10}^5,1≤m≤5×1051 \le m \le 5 \times {10}^5。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1650。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~6 小规模 n≤200 / 特殊: 整个图强连通答案为1 / 特殊: 含大量自环与重边
2 7~12 中等规模 n≤2000 / Hack: 多个强连通分量汇入同一汇点
3 30 13~19 满规模 n=100000,m=500000 深度10^5单链防递归爆栈测试
4 20 20~25 满规模 n=100000,m=500000 随机SCC缩点综合回归

出处:原题链接