CF1967E1.Again Counting Arrays (Easy Version)

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是该问题的简单版本。两个版本的区别在于 n,m,b0n, m, b_0 的约束条件和时间限制。只有在两个版本都解决后才能进行 hack。

小 R 以前数过很多集合,现在她决定来数一数数组。

小 R 认为一个由非负整数组成的数组 b0,…,bnb_0, \ldots, b_n 是连续的,当且仅当对于每个满足 1≤i≤n1 \leq i \leq n 的 ii,都有 ∣bi−bi−1∣=1|b_i - b_{i-1}| = 1。她喜欢连续性,所以她只想生成连续数组。

如果小 R 给定了 b0b_0 和 a1,…,ana_1, \ldots, a_n,她会尝试生成一个非负的连续数组 bb,并且 bb 与 aa 没有相似之处。更正式地说,对于所有 1≤i≤n1 \leq i \leq n,都有 ai≠bia_i \neq b_i。

然而,小 R 并没有任何数组 aa。相反,她给了你 nn、mm 和 b0b_0。她想要统计满足以下条件的不同整数数组 a1,…,ana_1, \ldots, a_n 的个数:

  • 1≤ai≤m1 \leq a_i \leq m;
  • 至少存在一个非负连续数组 b0,…,bnb_0, \ldots, b_n 可以被生成。

注意 bi≥0b_i \geq 0,但 bib_i 可以任意大。

由于实际答案可能非常大,请将答案对 998 244 353998\,244\,353 取模后输出。

输入格式

每个测试点包含多组测试数据。第一行包含测试用例数 t (1≤t≤104)t\ (1 \leq t \leq 10^4)。接下来是每组测试数据的描述。

每组测试数据的第一行包含三个整数 nn、mm 和 b0b_0(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5,1≤m≤2⋅1051 \leq m \leq 2 \cdot 10^5,0≤b0≤2⋅1050 \leq b_0 \leq 2\cdot 10^5)——数组 a1,…,ana_1, \ldots, a_n 的长度、a1,…,ana_1, \ldots, a_n 的最大可能元素,以及数组 b0,…,bnb_0, \ldots, b_n 的初始元素。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot 10^5。

输出格式

对于每个测试用例,输出一行一个整数,表示满足条件的不同数组 a1,…,ana_1, \ldots, a_n 的个数,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    6
    3 2 1
    5 5 3
    13 4 1
    100 6 7
    100 11 3
    1000 424 132

    输出#1

    6
    3120
    59982228
    943484039
    644081522
    501350342

说明/提示

以第一个测试用例为例,当 a=[1,2,1]a = [1, 2, 1] 时,可以设置 b=[1,0,1,0]b = [1, 0, 1, 0]。当 a=[1,1,2]a = [1, 1, 2] 时,可以设置 b=[1,2,3,4]b = [1, 2, 3, 4]。总共有 66 种合法的 a1,…,ana_1, \ldots, a_n 选择:实际上可以证明,只有 a=[2,1,1]a = [2, 1, 1] 和 a=[2,1,2]a = [2, 1, 2] 无法构造出非负连续的 b0,…,bnb_0, \ldots, b_n,所以答案是 23−2=62^3 - 2 = 6。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页