CF687E TOF
题目描述
今天,Pari 给 Arya 出了一个有趣的图论题目。Arya 编写了一个性能不佳的解决方案,因为他相信自己能够优化这些非最佳方案。不仅如此,代码中还存在不少错误,他尝试了多次进行优化,结果代码变得非常杂乱!他不断遇到“超出时间限制”的问题,这让他感到很失望。不过突然之间,他灵光一现!
下列是他的杂乱代码:
```cpp
dfs(v) {
count[v] = count[v] + 1;
if (count[v] < 1000) {
foreach u in neighbors[v] {
if (visited[u] == false) {
dfs(u);
}
break;
}
}
visited[v] = true;
}
main() {
输入有向图();
TOF();
for 1
输入格式
第一行输入两个整数 $n$ 和 $m$,分别表示图的顶点数和有向边数($1 \leq n, m \leq 5000$)。
接下来的 $m$ 行中,每行包含两个整数 $u_i$ 和 $v_i$,表示存在一条从 $u_i$ 到 $v_i$ 的有向边($1 \leq u_i, v_i \leq n$)。
可以假设图中不存在自环,并且任意一对无序顶点之间最多只有一条边。
输出格式
输出一个整数,表示通过调整边的顺序后,可以实现的最小 `dfs` 函数调用次数。
**本翻译由 AI 自动生成**