AT_kupc2020_g.Counting Angels

通过率:0%

AC君温馨提醒

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

题目描述

タプリス酱喜欢数列。

现在,タプリス酱有一个长度为 11 的数列 A=(1)A = (1)。

她决定对 AA 重复进行 NN 次以下任意一种操作。下面,记数列 AA 从前往后第 ii(1≤i≤∣A∣1 \leq i \leq |A|)个元素为 aia_i。

  • 在 AA 的末尾添加 11 或 MM。
  • 选择一个整数 ii,满足 1≤i<∣A∣1 \leq i < |A|。在 aia_i 和 ai+1a_{i+1} 之间插入一个整数 xx,使得 ai<x<ai+1a_i < x < a_{i+1} 或 ai>x>ai+1a_i > x > a_{i+1}。

第 ii 次操作后得到的数列 AA 记为 SiS_i。

请你求出所有可能的数列序列 S1,S2,…,SNS_1, S_2, \ldots, S_N 的种类数,结果对 998244353998244353 取模。

输入格式

输入为以下格式,从标准输入读入。

NN MM

输出格式

输出所有可能的数列序列 S1,S2,…,SNS_1, S_2, \ldots, S_N 的种类数,对 998244353998244353 取模后的结果。

输入输出样例

  • 输入#1

    2 3

    输出#1

    5
  • 输入#2

    1024 52689658

    输出#2

    654836147

说明/提示

限制条件

  • 1≤N≤30001 \leq N \leq 3000
  • 2≤M≤1082 \leq M \leq 10^8

样例解释 1

首先第一次操作在 AA 的末尾添加 33,得到 A=(1,3)A = (1, 3)。接着第二次操作在 11 和 33 之间插入 22,得到 A=(1,2,3)A = (1, 2, 3)。因此,这样操作后,S1=(1,3),S2=(1,2,3)S_1 = (1, 3), S_2 = (1, 2, 3)。

除此之外,还可以有以下情况:

  • S1=(1,1),S2=(1,1,1)S_1 = (1, 1), S_2 = (1, 1, 1)
  • S1=(1,1),S2=(1,1,3)S_1 = (1, 1), S_2 = (1, 1, 3)
  • S1=(1,3),S2=(1,3,3)S_1 = (1, 3), S_2 = (1, 3, 3)
  • S1=(1,3),S2=(1,3,1)S_1 = (1, 3), S_2 = (1, 3, 1)

共 55 种情况。因此答案为 55。

样例解释 2

请输出对 998244353998244353 取模后的结果。

由 ChatGPT 4.1 翻译

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

首页