CF1943D1 Counting Is Fun (Easy Version)

题目描述

这是该问题的简单版本。两个版本的唯一区别在于 $ n $ 的约束条件。只有当你同时解决了两个版本的问题时,才能进行 hack。 一个长度为 $ m $ 的非负整数数组 $ b $ 被称为“好数组”,如果可以通过以下操作若干次(可能为零次)将 $ b $ 的所有元素都变为 $ 0 $: - 选择两个不同的下标 $ l $ 和 $ r $($ 1 \leq l \color{red}< \color{normal}r \leq m $),并对所有满足 $ l \leq i \leq r $ 的 $ b_i $ 执行 $ b_i := b_i - 1 $。 现在给定两个正整数 $ n $、$ k $ 和一个质数 $ p $。 在所有长度为 $ n $ 的数组 $ a $ 中,满足 $ 0 \leq a_i \leq k $($ 1 \leq i \leq n $),请统计有多少个“好数组”。 由于答案可能很大,你只需要输出答案对 $ p $ 取模的结果。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $ t $($ 1 \leq t \leq 10^3 $),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含三个正整数 $ n $、$ k $ 和 $ p $($ 3 \leq n \leq 400 $,$ 1 \leq k \leq n $,$ 10^8 < p < 10^9 $),分别表示数组 $ a $ 的长度、元素的上界以及取模的质数。 保证所有测试用例中 $ n^2 $ 的和不超过 $ 2 \cdot 10^5 $,且 $ p $ 是质数。

输出格式

对于每个测试用例,输出一行,表示“好数组”的数量对 $ p $ 取模的结果。

说明/提示

在第一个测试用例中,$ 4 $ 个“好数组” $ a $ 分别为: - $ [0,0,0] $; - $ [0,1,1] $; - $ [1,1,0] $; - $ [1,1,1] $。 由 ChatGPT 4.1 翻译