CF1866C Completely Searching for Inversions

题目描述

给定一个有 $ N $ 个结点的有向无环图。结点 $ i $ 的出度为 $ S_i $。结点 $ i $ 的第 $ j $ 条出边指向 $ L_{i, j} $,边权为 $ W_{i, j} \text{ } (0 \le W_{i, j} \le 1) $。给出的图保证从结点 $ 1 $ 出发可以到达所有结点。 给定初始为空的数组 $ Z $。 定义函数 $ \texttt{dfs} $ 如下: ```cpp // 以结点 i 为起点进行 dfs void dfs(int i) { // 遍历 i 的每条出边 for(int j = 1; j

输入格式

每组测试数据的第一行包含一个整数 $ N \text{ } (2 \le N \le 10^5) $,代表图中的结点个数。接下来的数据包含了结点 $ 1 $ 到结点 $ N $ 的信息。 结点 $ i $ 所对应信息的第一行包含一个整数 $ S_i \text{ } (0 \le S_i \le N - 1) $,代表结点 $ i $ 的出度。 接下来的 $ S_i $ 行中的第 $ j $ 行包含两个整数 $ L_{i, j} \text{ } (1 \le L_{i, j} \le N) $ 和 $ W_{i, j} \text{ } (0 \le W_{i, j} \le 1) $,表示从结点 $ i $ 的其中一条出边指向结点 $ L_{i, j} $,边权为 $ W_{i, j} $。 输入数据保证给定的图没有重边,没有环。保证 $ \sum S_i \le 2 \times 10^5 $。保证从结点 $ 1 $ 出发可以到达图中的任意一个结点。

输出格式

输出一个整数,代表答案对 $ 998 \text{ } 244 \text{ } 353 $ 取模的值。 ### 样例解释 数组 $ Z = [0, 1, 0, 1, 1, 0] $。逆序对为 $ (2, 3) $,$ (2, 6) $,$ (4, 6) $,和 $ (5, 6) $。

说明/提示

The following is the dfs(1) process on the graph. ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1866C/34074dff778779238af6fbfe3b28420e68e48977.png) In the end, $ Z=[0,1,0,1,1,0] $ . All of its inversions are $ (2,3) $ , $ (2,6) $ , $ (4,6) $ , and $ (5,6) $ .