CF2119D.Token Removing

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

r-906 & 初音未来 - All I Can See Is You

定义一个整数序列 aa 是合法的,当且仅当对于所有 1≤i≤n1 \le i \le n,都有 0≤ai≤i0 \le a_i \le i。

定义一个长度为 nn 的合法序列 aa 的权值 f(a)f(a) 如下:

  • 初始时,在数轴的闭区间 [1,n][1, n] 上的每个整数点各放置一个标记。
  • 依次进行 nn 次操作。在第 ii 次操作时,如果 ai≠0a_i \ne 0,则从闭区间 [ai,i][a_i, i] 内尚未被移除的标记中移除一个;否则,不进行任何操作。
  • f(a)f(a) 表示移除标记的方案数。如果存在某个 tt,使得两种方案在第 tt 次操作时移除的标记位置不同,则认为这两种方案不同。

例如,f([0,2,1])=2f([0, 2, 1]) = 2,因为可以依次移除 2,12, 1 或 2,32, 3 位置的标记。

JT 给你两个整数 n,mn, m,请你求出所有长度为 nn 的合法序列的权值之和,即所有 (n+1)!(n + 1)! 个合法序列的 f(a)f(a) 之和。由于答案可能过大,请输出其对 mm 取模的结果。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt(1≤t≤10001 \le t \le 1000),表示测试用例的数量。

接下来每组测试用例一行,包含两个整数 nn 和 mm(1≤n≤5000,108≤m≤1.01⋅1091 \le n \le 5000, 10^8 \le m \le 1.01 \cdot 10^9),分别表示合法序列的长度和取模的数。

保证所有测试用例的 n2n^2 之和不超过 2.5⋅1072.5 \cdot 10^7。

输出格式

对于每个测试用例,输出一个整数,表示所有 (n+1)!(n + 1)! 个长度为 nn 的合法序列的权值之和,对 mm 取模后的结果。

输入输出样例

  • 输入#1

    6
    1 1000000007
    2 1000000007
    3 1000000007
    4 1000000007
    5 1000000007
    114 514191981

    输出#1

    2
    7
    37
    273
    2672
    393775292

说明/提示

在第一个测试用例中,合法序列为 [0][0] 和 [1][1],答案为 f([0])+f([1])=1+1=2f([0]) + f([1]) = 1 + 1 = 2。

在第二个测试用例中,合法序列为 [0,0],[0,1],[0,2],[1,0],[1,1],[1,2][0, 0], [0, 1], [0, 2], [1, 0], [1, 1], [1, 2]。其中 [0,1][0, 1] 的权值为 22,其余均为 11,所以答案为 5×1+1×2=75 \times 1 + 1 \times 2 = 7。

由 ChatGPT 4.1 翻译

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

首页