AT_past202309_n.ソートと関数

通过率:0%

AC君温馨提醒

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

题目描述

对于一个由正整数组成的多重集 SS,定义函数 f(S)f(S) 如下:

  • 首先,令 A=(A0,A1,…,A∣S∣−1)A=(A_0,A_1,\ldots,A_{|S|-1}) 为 SS 的元素按升序排序后的列表。
  • 然后,f(S)=∑i=0∣S∣−1KiAif(S)=\displaystyle \sum_{i=0}^{|S|-1} K^i A_i。常数 KK 将由输入给出。
  • 如果 SS 为空集,则 f(S)=0f(S)=0。

现有一个初始为空的多重集 TT。将对这个集合总共进行 QQ 次如下操作:

  • xx

向 TT 中加入一个 xx。

  • xx

从 TT 中移除一个 xx。保证此时 TT 中至少有一个 xx。

每次操作后,输出此时 f(T)f(T) 对 998244353998244353 取模后的值。

输入格式

从标准输入读取数据,格式如下:

QQ KK
ope1ope_1
ope2ope_2
⋮\vdots
opeQope_Q

其中 opeiope_i 表示第 ii 次操作。

输出格式

共输出 QQ 行。
第 ii 行输出第 ii 次操作后 f(T)f(T) 对 998244353998244353 取模的结果。

输入输出样例

  • 输入#1

    10 2
    + 7
    - 7
    + 2
    + 3
    - 2
    + 3
    + 5
    - 3
    + 998244352
    + 5

    输出#1

    7
    0
    2
    8
    3
    9
    29
    13
    9
    25

说明/提示

样例解释 1

  • 第一次操作向 TT 加入 77。
    • 此时 T={7}T=\{7\},f(T)=7f(T)=7。
  • 第二次操作移除 77。
    • 此时 T={}T=\{\},f(T)=0f(T)=0。
  • 第三次操作加入 22。
    • 此时 T={2}T=\{2\},f(T)=2f(T)=2。
  • 第四次操作加入 33。
    • 此时 T={2,3}T=\{2,3\},f(T)=8f(T)=8。
  • 第五次操作移除 22。
    • 此时 T={3}T=\{3\},f(T)=3f(T)=3。
  • 第六次操作加入 33。
    • 此时 T={3,3}T=\{3,3\},f(T)=9f(T)=9。
  • 第七次操作加入 55。
    • 此时 T={3,3,5}T=\{3,3,5\},f(T)=29f(T)=29。
  • 第八次操作移除 33。
    • 此时 T={3,5}T=\{3,5\},f(T)=13f(T)=13。
  • 第九次操作加入 998244352998244352。
    • 此时 T={3,5,998244352}T=\{3,5,998244352\},f(T)=3992977421f(T)=3992977421,对 998244353998244353 取模输出 99。
  • 第十次操作加入 55。
    • 此时 T={3,5,5,998244352}T=\{3,5,5,998244352\},f(T)=7985954849f(T)=7985954849,对 998244353998244353 取模输出 2525。

数据范围

  • QQ 和 KK 为整数。
  • 1≤Q≤3×1051 \le Q \le 3 \times 10^5
  • 1≤K<9982443531 \le K < 998244353
  • 每次操作中的 xx 为整数。
  • 对于每次 + 操作,1≤x<9982443531 \le x < 998244353。
  • 对于每次 - 操作,保证 TT 中有一个及以上 xx。

由 ChatGPT 5 翻译

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

首页