AT_wtf22_day2_d.Cat Jumps

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

给定一个正整数序列 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N。定义 S=N+∑1≤i≤NAiS = N + \sum_{1 \leq i \leq N} A_i。

猫 Snuke 拥有 SS 张卡片。每张卡片上写有一个整数,分别为 A1,A2,⋯ ,AN,−1,⋯ ,−1A_1, A_2, \cdots, A_N, -1, \cdots, -1。特别地,写有 −1-1 的卡片共有 ∑1≤i≤NAi\sum_{1 \leq i \leq N} A_i 张。

Snuke 现在位于数轴上坐标为 00 的位置。接下来,它将进行 SS 次如下操作:

  • 设 Snuke 当前所在位置的坐标为 xx。从持有的卡片中选择一张并丢弃。设丢弃的卡片上的数为 vv,则跳跃到坐标为 x+vx + v 的位置。如果跳跃后的坐标为 00,则获得 11 枚硬币。

对于每个 k=1,2,⋯ ,Nk = 1, 2, \cdots, N,求 Snuke 恰好获得 kk 枚硬币的跳跃序列有多少种,结果对 998244353998244353 取模。

注意计数的是跳跃序列。也就是说,如果两张卡片上的数相同,则丢弃它们的操作被视为相同的。

输入格式

输入通过标准输入给出,格式如下:

NN
A1A_1 A2A_2 ⋯\cdots ANA_N

输出格式

输出 NN 行。第 ii 行输出 k=ik = i 时的答案。

输入输出样例

  • 输入#1

    2
    1 1

    输出#1

    2
    4
  • 输入#2

    3
    1 2 3

    输出#2

    140
    220
    144
  • 输入#3

    20
    16 6 15 19 1 9 6 1 11 7 6 12 3 11 11 18 10 9 15 5

    输出#3

    507808441
    401798892
    110460932
    680359166
    737048635
    442374434
    737773176
    980506765
    473506608
    693729211
    532774651
    621434128
    4273369
    839437048
    585784927
    590354055
    969740008
    825216624
    442091194
    660636013

说明/提示

约束条件

  • 1≤N≤50001 \leq N \leq 5000
  • 1≤Ai≤50001 \leq A_i \leq 5000
  • 输入的所有值均为整数。

样例解释 1

例如,跳跃序列 (−1,+1,+1,−1)(-1, +1, +1, -1) 是可能的。此时,Snuke 的坐标变化为 0→−1→0→1→00 \to -1 \to 0 \to 1 \to 0,并获得 22 枚硬币。以下是所有可能的跳跃序列及其对应的硬币数量:

  • (−1,−1,+1,+1)(-1, -1, +1, +1):11 枚
  • (−1,+1,−1,+1)(-1, +1, -1, +1):22 枚
  • (−1,+1,+1,−1)(-1, +1, +1, -1):22 枚
  • (+1,−1,−1,+1)(+1, -1, -1, +1):22 枚
  • (+1,−1,+1,−1)(+1, -1, +1, -1):22 枚
  • (+1,+1,−1,−1)(+1, +1, -1, -1):11 枚

翻译由 DeepSeek V3 完成

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

首页