对一个无向完全图的每一条边定向后,就会得到一个竞赛图。现在已知一个 n 个点的竞赛图中每个点的出度,请你恢复原图。
你只需要输出:在你恢复的图中,有多少对点 (u, v) 满足存在一条从 u 到 v 的简单路径。你可以认为这个题目的答案一定存在且唯一。
注意:因为是有向图,所以 (1,2) 和 (2,1) 算不同的两对;并规定每个点到自己也算满足条件(空路径)。
第1行:一个整数 n(1 <= n <= 100000),表示竞赛图的点数。
第2行:n 个整数,表示每个点的出度 d[1]...d[n](保证是合法的竞赛图出度序列)。
输出仅一个整数,表示满足条件的有序点对 (u, v) 的数量。
3 2 0 1
6
竞赛图的出度序列由 Landau 定理唯一确定其强连通分量的大小划分:将出度升序排列,当某个前缀 m 的和恰好等于 C(m,2) 时,此处是一个强连通分量的结束边界,从而得到各强分量大小 s_1, s_2, ...。分量内部任意点对互相可达,分量之间按传递方向只有"从前面的分量到后面的分量"可达。于是有序可达点对数(含自己到自己)= (n^2 + Σ s_i^2) / 2。