#P11802. 【MX-X9-T6】『GROI-R3』Graph

【MX-X9-T6】『GROI-R3』Graph

题目描述

给定一张 nn 个点的有向图 G=(V,E)G=(V,E),点的编号为 1n1 \sim n,其每个点都入度、出度均不大于 11

在出度不大于 11 的有向图中,我们记 fk(x)f^k(x) 表示点 xx 在图上沿着出边走 kk 步走到的点(如果走到一个不存在出边的点,则停在该点上)。

进一步定义 Gk=(V,E)G^k=(V,E'),其中 E={(x,fk(x))xV}E'=\{(x,f^k(x))\mid x\in V\}。我们称 GGGkG^kkk 次方根。

若一个点入度出度均为 00 则称其为孤立点。

又给定一个正整数 cc,你需要给 GG 增加若干条边得到图 GG',使得:

  1. 每个节点的入度出度均为 11
  2. 若两个非孤立点在 GG' 上位于同一连通块^{\dagger},则在 GG 上也要位于同一连通块。
  3. GG' 存在 cc 次方根。

求加边的方案总数,答案对 998244353998244353 取模。

^{\dagger}:本题中定义有向图连通块为:将所有边视作无向边得到的连通块。

输入格式

第一行,两个正整数 n,cn,c

第二行,nn 个整数,第 ii 个表示点 ii 的出边指向的点的编号,若为 1-1 则表示无出边。

输出格式

仅一行,一个整数,表示答案对 998244353998244353 取模后的值。

5 4
2 5 -1 -1 -1

3

9 7
7 -1 -1 -1 8 1 -1 -1 5

60

8 10
-1 -1 4 -1 -1 -1 -1 -1

1266

提示

aia_i 表示点 ii 的出边指向点的编号。

【样例解释 #1】

合法的序列 a1,,ana_1,\ldots,a_n 有:

  • 2,5,1,3,42,5,1,3,4
  • 2,5,3,4,12,5,3,4,1
  • 2,5,4,1,32,5,4,1,3

【数据范围】

本题采用捆绑测试。

子任务编号 nn\le cc\le 特殊性质 分值
1 55 22
2 10001000 2×1092\times10^9 A 33
3 1010 1515
4 2020 1010
5 100100 2525
6 500500 B 1010
7 2020
8 10001000 1515
  • 特殊性质 A:保证不存在 ai=1a_i=-1
  • 特殊性质 B:保证所有 ai=1a_i=-1

对于 100%100\% 的数据,保证 1n10001\le n\le 10001c2×1091\le c\le 2\times10^91ain1\le a_i\le nai=1a_i=-1,不存在 iji\ne j 使得 ai=aja_i=a_jai1a_i \ne -1