Jin Song 和 Jin Hui 是兄妹。他们就读于同一所大学。Jin Song 是 ICPC 训练俱乐部的成员,而 Jin Hui 是英语俱乐部的成员。
今天是 Jin Hui 的 17 岁生日,也是她在大学度过的第一个生日。作为一名好哥哥,Jin Song 为他漂亮的妹妹准备了一份精美的礼物。但调皮的妹妹在他起床前就去了学校,于是他决定去英语俱乐部把生日礼物送给她。
Jin Hui 是一个非常聪明的女孩,她想到哥哥一定会来找她,于是决定为他准备一个有趣的恶作剧。她在英语俱乐部有 $n$ 个伙伴,他们都同意了她的主意。首先,Jin Hui 给自己和所有伙伴分配了编号:Jin Hui 的编号为 0,伙伴们的编号为 $1$ 到 $n$ 的不同整数。然后,她让伙伴们穿上和她一模一样的制服,戴上厚厚的眼镜,这样 $n+1$ 个女孩看起来就完全一样了。结果,Jin Song 会感到困惑并试图找到他的妹妹。恶作剧的过程如下:
- 他随机且均匀地选择一个尚未被询问过的女孩 $i$。
- 他询问被选中的女孩:“你是我的妹妹吗?”如果当前的女孩 $i$ 是 Jin Hui(即 $i = 0$),她将立即结束这个恶作剧。否则,女孩 $i$ 会说 Jin Hui 是女孩 $p_i$。数字 $p_i$ 是在 Jin Song 到来之前商定好的。
- 如果 $p_i = i$(因此,一个伙伴女孩说她是 Jin Hui)或者 Jin Song 之前已经询问过女孩 $p_i$,他就会发现女孩在撒谎,并回到第 1 步。否则,他将继续询问女孩 $p_i$,并回到第 2 步。
Jin Song 想尽快找到他的妹妹,他想知道找到他聪明的妹妹需要多长时间。
你的任务是求出 Jin Song 在恶作剧结束前需要询问的女孩数量(包括他的妹妹)的期望值。
输入格式
第一行包含一个整数 $T$,表示测试用例的数量 ($1 \le T \le 10$)。
每个测试用例包含两行。第一行包含一个整数 $n$,表示 Jin Hui 的伙伴数量 ($1 \le n \le 10^5$)。第二行包含 $n$ 个空格分隔的整数 $p_1, p_2, \dots, p_n$,其中 $p_i$ 是女孩 $i$ 将 Jin Song 引向的伙伴编号 ($1 \le p_i \le n$)。
输出格式
可以证明期望值可以表示为不可约分数 $p/q$(即 $p$ 和 $q$ 是互质整数)。因此,对于每个测试用例,请打印一行,包含一个整数:$(p \cdot q^{-1}) \pmod{10^9 + 7}$ 的值。
样例
输入 1
1 3 2 3 1
输出 1
250000005
说明
在样例中,有 4 种选择第一个女孩的方法。在 Jin Song 选择第一个女孩后,接下来的过程是唯一确定的。一种方法是先选择他的妹妹,其余的是选择 1、2 或 3。
如果他先选择他的妹妹,恶作剧立即结束,他总共询问了 1 个女孩。
如果他先选择女孩 1,那么他将询问三个女孩:1、2 和 3。然后他会发现她们在撒谎,并直接去找他的妹妹。所以他总共询问了 4 个女孩,顺序为 1, 2, 3, 0。
先选择女孩 2 或 3 的情况与选择女孩 1 类似:女孩的序列分别为 2, 3, 1, 0 和 3, 1, 2, 0。
每种情况发生的概率均为 $1/4$。
因此,答案是 $((1 + 4 + 4 + 4) \cdot 4^{-1}) \pmod{10^9 + 7} = 250\,000\,005$。