电报
题号:NC53241
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

题目译自 JOISC 2016 Day3 T3 「電報
给出N个点,每个点的出度均为1,给出这N个点初始指向的点A_i,和改变这个点指向的目标所需要的价值C_i
求让所有点强连通的最小花费。

输入描述:

第一行输入一个数N表示点的个数。
之后的N行每行两个数A_iC_i表示第i个点指向第A_i个点,更改该点指向的点花费为C_i

输出描述:

共一行,为让所有点强连通的最小花费。
示例1

输入

复制
4
2 2
1 4
1 3
3 1

输出

复制
4

说明

很显然,把2 \rightarrow1的这条边改成2 \rightarrow4(花费4)的情况下构成强连通分量花费最小。
示例2

输入

复制
4
2 2
1 6
1 3
3 1

输出

复制
5

说明

很显然把1 \rightarrow2的这条边改成1 \rightarrow4花费2,把3 \rightarrow1的这条边改成3 \rightarrow2花费3的情况下构成强连通分量花费最小,总花费为5。
示例3

输入

复制
4
2 2
1 3
4 2
3 3

输出

复制
4
示例4

输入

复制
3
2 1
3 1
1 1

输出

复制
0

备注:

对于全部的数据,,,,

CC-BY-SA,感谢LOJ分享,译文来自 https://loj.ac/problem/2737