#P3081. 「2019 集训队互测 Day 5」简单计数

    ID: 1179 传统题 7000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>数学DFT(含 NTT)及FFT分块及按大小分类集训队互测2019

「2019 集训队互测 Day 5」简单计数

题目描述

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

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

  • 每个点有不超过 11 条出边

  • 每个点的入边条数在集合 SS 中

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

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

输入格式

第一行依次输入三个用空格分隔的正整数,nn、kk、∣S∣|S|。

接下来第二行从小到大输入 ∣S∣|S| 个空格分隔的不同非负整数,表示 SS 集合中的元素。

输出格式

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

3 1 2
0 1
13

有如下13个符合题意的图,其中 a→ba \rightarrow b 表示一条从 aa 连向 bb 的有向边:

  1. 没有边
  2. 1→21 \rightarrow 2
  3. 2→12 \rightarrow 1
  4. 1→31 \rightarrow 3
  5. 3→13 \rightarrow 1
  6. 2→32 \rightarrow 3
  7. 3→23 \rightarrow 2
  8. 1→2→31 \rightarrow 2 \rightarrow 3
  9. 1→3→21 \rightarrow 3 \rightarrow 2
  10. 2→1→32 \rightarrow 1 \rightarrow 3
  11. 2→3→12 \rightarrow 3 \rightarrow 1
  12. 3→1→23 \rightarrow 1 \rightarrow 2
  13. 3→2→13 \rightarrow 2 \rightarrow 1
8 2 3
0 2 3
7497953
3000 2 3
0 1 3
500207304
876543210 233 4
0 1 2 3
467638557

数据范围与提示

对于所有数据,1≤n≤9×108​1 \leq n \leq 9 \times 10^8​,1≤k≤1071 \leq k \leq 10^7,SS 集合非空,SS 集合中所有元素为 [0,3][0,3] 的非负整数。

数据共分为 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 分):无特殊限制。