AT_abc434_g.[ABC434G] Keyboard

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

对于一个只包含 1、2、…\dots、9 和 B 的字符串 AA,定义 f(A)f(A) 为通过以下过程得到的字符串:

  • 初始有一个空字符串 CC。
  • 依次对 i=1,2,…,∣A∣i = 1, 2, \dots, |A| 进行如下操作:
    • 如果 AiA_i 是 1、2、…\dots、9,则将 AiA_i 加到 CC 的末尾。
    • 如果 Ai=BA_i = \text{B},则删除 CC 的最后一个字符。如果 CC 为空则不进行操作。
  • 完成所有操作后,将 CC 作为 f(A)f(A)。

给定一个长度为 NN 的字符串 SS,由 1、2、…\dots、9 和 B 组成。现在要处理 QQ 个如下描述的查询,每个查询有两种类型:

  • 1 x c1\ x\ c :将 SxS_x 更新为 cc。(cc 为 1、2、…\dots、9 或 B)
  • 2 l r2\ l\ r :取 SS 的第 ll 到第 rr 个字符组成字符串 TT,令 U=f(T)U=f(T)。如果 UU 为空串,输出 −1-1;否则,将 UU 视为十进制整数后对 998244353998244353 取余,输出结果。

输入格式

输入通过标准输入给出,格式如下,其中 queryi\mathrm{query}_i 表示第 ii 个查询:

NN QQ SS
query1\mathrm{query}_1
query2\mathrm{query}_2
⋮\vdots
queryQ\mathrm{query}_Q

每个查询格式如下两种之一:

1 x c1\ x\ c

2 l r2\ l\ r

输出格式

对于每个查询类型为 22 的操作,按照题面要求用换行分隔依次输出答案。

输入输出样例

  • 输入#1

    10 12
    1234567891
    2 5 7
    2 2 8
    2 1 10
    1 3 B
    1 4 B
    2 2 4
    2 2 8
    2 1 10
    1 7 B
    2 3 9
    1 3 4
    2 1 10

    输出#1

    567
    2345678
    236323538
    -1
    5678
    567891
    589
    125891

说明/提示

样例解释 1

对于第一个查询,T=U=567T=U=567,输出 567567。
对于第三个查询,T=U=1234567891T=U=1234567891,输出 1234567891 mod 998244353=2363235381234567891 \bmod 998244353 = 236323538。
对于第六个查询,T=2BBT=2BB,UU 为空串,输出 −1-1。

约束条件

  • 1≤N≤8×1061 \leq N \leq 8 \times 10^6
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • SS 为长度为 NN 的字符串,仅包含 1、2、…\dots、9 和 B
  • 1≤x≤N1 \leq x \leq N
  • cc 为 1、2、…\dots、9 或 B
  • 1≤l≤r≤N1 \leq l \leq r \leq N
  • N,Q,x,l,rN, Q, x, l, r 都为整数。

由 ChatGPT 5 翻译

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

首页