#P6132. [集训队互测 2019] 简单计数

    ID: 6906 远端评测题 7000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>数学2019集训队互测O2优化矩阵加速组合数学生成函数快速傅里叶变换 FFT

[集训队互测 2019] 简单计数

背景

警告,滥用本题者将被封号。

CauchySheep\mathsf C \color{red}\mathsf{auchySheep} 近期优化了他的 快速数论变换 (NTT) 模板的常数,现在他能在 0.1s0.1\text s 内轻松跑过 n=109n=10^9 了,所以他准备用下面的这个简单计数题也考验一下你的常数优化水平。

题目描述

传说,在很久很久以前,有一张 n​n​ 个点的带标号有向无环图。每条边有一个颜色,为 kk 种不同颜色中的一种。这张图满足如下性质:

  • 每个点有不超过 11 条出边
  • 每个点的入边条数在集合 SS 中

由于某种原因,你想知道这样的图的个数。由于这样的图可能很多,你只要输出答案对 998244353​998244353​ 取模的值。

两个图不同当且仅当存在一条从某个点 aa 到某个点 bb 的有向边,它只在恰好一个图中出现,或在两个图中都出现但颜色不同。

输入格式

第一行输入三个正整数 n,k,∣S∣n, k, |S|。
第二行从小到大输入 ∣S∣|S| 个不同的非负整数,表示 SS 集合中的元素。

输出格式

输出一行一个 [0,998244352][0,998244352] 的整数,表示符合题意的图的个数对 998244353​998244353​ 取模的值。

3 1 2
0 1
13
8 2 3
0 2 3
7497953
3000 2 3
0 1 3
500207304
10000000 3 2
0 3
238588124
876543210 233 4
0 1 2 3
467638557

提示

【样例一解释】
有如下 1313 个符合题意的图,其中 a→ba \to b 表示一条从 aa 连向 bb 的有向边:

  1. 没有边
  2. 1→21 \to 2
  3. 2→12 \to 1
  4. 1→31 \to3
  5. 3→13 \to 1
  6. 2→32 \to 3
  7. 3→23 \to 2
  8. 1→2→31 \to 2 \to 3
  9. 1→3→21 \to 3 \to 2
  10. 2→1→32 \to 1 \to 3
  11. 2→3→12 \to 3 \to 1
  12. 3→1→23 \to 1 \to 2
  13. 3→2→13 \to 2 \to 1

【数据范围】
数据共分为 77 个子任务。

  • 子任务 11(55 分):n≤8n \leq 8。
  • 子任务 22(1010 分):n≤5000n \leq 5000。
  • 子任务 33(3030 分):n≤105n \leq 10^5。
  • 子任务 44(2020 分):n≤107n \leq 10^7。
  • 子任务 55(1515 分):n≤108n \leq 10^8。
  • 子任务 66(1010 分):S={0,1}S=\{0,1\}。
  • 子任务 77(1010 分):无特殊限制。

对于 100%100\% 的数据,1≤n≤9×108​1 \le n \le 9 \times 10^8​,1≤k≤1071 \le k \le 10^7,S≠∅S \neq \varnothing,S⊆{0,1,2,3}S \subseteq \{0,1,2,3\}。

By:fjzzq2002
来源:2019 年集训队互测 Day5