D. 模拟11幻象「Luna Clock」(月神之钟)

    传统题 2000ms 512MiB

模拟11幻象「Luna Clock」(月神之钟)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

幻象「Luna Clock」(月神之钟)

题目描述

给定一个长度为 nn 的数组 a1,a2,,ana_{1},a_{2},\dots,a_{n},满足 1ain1 \le a_{i} \le n

你可以进行任意次操作。每次选择一个下标 ii,先令 jj 等于操作开始时的 aia_{i},再交换 aia_{i}aja_{j} 的值。也就是说,第二个位置由交换前的数组确定。求经过操作能够得到多少个不同的数组。

答案对 109+710^{9}+7 取模。

输入格式

第一行包含一个整数 nn。 第二行包含 nn 个整数 a1,a2,,ana_{1},a_{2},\dots,a_{n}

输出格式

输出一个整数,表示能够得到的不同数组数量对 109+710^9+7 取模后的结果。

样例输入 #1


3
1 1 2

样例输出 #1


2

样例输入 #2


4
2 1 4 3

样例输出 #2


4

样例输入 #3


6
2 3 1 1 1 2

样例输出 #3


18

样例3解释

函数图中 12311 \to 2 \to 3 \to 1 构成一个三元环,点 4,54,5 指向点 11,点 66 指向点 22。各点原始入度为 d1=3d_{1}=3d2=2d_{2}=2d3=1d_{3}=1d4=d5=d6=0d_{4}=d_{5}=d_{6}=0

环外点的贡献均为 11。三元环的贡献为 (d1+1)(d2+1)\red{ \left(d_{1}+1\right)\left(d_{2}+1\right)}(d3+1)\red{\left(d_{3}+1\right)}-(d1+d2+d3)\red{\left(d_{1}+d_{2}+d_{3}\right)}=4×3×26=18,\red{4 \times 3 \times 2-6=18, } 因此答案为 1818

数据范围

对于前10%的数据, n10n \le 10。 另有20%的数据,所有 aia_{i} 互不相同。 另有20%的数据, aimax(i1,1)a_{i} \le \max(i-1,1)。 另有20%的数据, aiia_{i} \le i。 对于100%的数据, 1n1061 \le n \le 10^{6}1ain1 \le a_{i} \le n

少年宫CSPS第十一轮模拟

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-8-29 9:15
结束于
2026-8-29 12:15
持续时间
3 小时
主持人
参赛人数
44