P11624 [迷宫寻路 Round 3] 挂掉的模板

题目背景

**upd : [2025/1/27] Hack 数据已添加。** 某人把 LCA 板子写挂了,然后就有了这道题。

题目描述

有一颗 $n$ 个节点的有根树。 定义 `FakeLCA` 函数代码如下: ```cpp int FakeLCA(int u, int v) { while (u != v) u = fa[u], v = fa[v]; return u; } ``` 其中 `fa[i]` 表示节点 $i$ 的父节点,**特别的,根的父节点是根本身。** 现在给定节点数 $n$ 和每个节点的父节点,问有多少个有序数对 $(u,v)$,满足 $1\le u,v\le n$ 且 `FakeLCA(u, v)` 的结果是 $u$ 和 $v$ 的真正的最近公共祖先。

输入格式

输出格式

说明/提示

**提示:请仔细阅读题目中关于根的说明,根节点不一定是 1 号点!** **本题采用捆绑测试。** 对于所有数据,$1\le n\le 10^6$。 | 子任务编号 | $n\leq$ | 分数 | | :----------: | :----------: | :----------: | | $0$ | $100$ | $25$ | | $1$ | $1000$ | $25$ | | $2$ | $7000$ | $25$ | | $3$ | $10^6$ | $25$ |