AT_past202004_g.ストリング・クエリ

通过率:0%

AC君温馨提醒

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

题目描述

对字符串 SS 进行 QQ 次操作。初始时,字符串 SS 为空字符串。

第 ii 次操作的类型由整数 Ti (1≤i≤Q)T_i\ (1\leq i\leq Q) 表示,具体内容如下:

  • 当 Ti=1T_i=1 时:
    • 给定一个小写英文字母 CiC_i 和一个整数 XiX_i。在 SS 的末尾添加 XiX_i 个 CiC_i 字符。
  • 当 Ti=2T_i=2 时:
    • 给定一个整数 DiD_i。从 SS 的开头删除 DiD_i 个字符。如果 SS 的长度不超过 DiD_i,则 SS 变为空字符串。对于本次操作,统计 a、b、c、⋯\cdots、z 各字符被删除的数量。若分别删除了 dela, delb, ⋯ , delzdel_a,\ del_b,\ \cdots,\ del_z 个,则输出 dela2+delb2+⋯+delz2del_a^2+del_b^2+\cdots+del_z^2。

输入格式

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

QQ
Query1Query_1
⋮\vdots
QueryQQuery_Q

第 22 行到第 Q+1Q+1 行的 QueryiQuery_i 有以下两种形式之一:

1 Ci Xi1\ C_i\ X_i

表示执行 Ti=1T_i=1 的操作。

2 Di2\ D_i

表示执行 Ti=2T_i=2 的操作。

输出格式

对于每个 Ti=2T_i=2 的操作,按顺序输出每种字符被删除数量的平方和。

输入输出样例

  • 输入#1

    6
    1 a 5
    2 3
    1 t 8
    1 c 10
    2 21
    2 4

    输出#1

    9
    168
    0
  • 输入#2

    4
    1 x 5
    1 y 8
    2 7
    1 z 8

    输出#2

    29
  • 输入#3

    3
    1 p 3
    1 q 100000
    2 100000

    输出#3

    9999400018

说明/提示

注意

本题在 2020 年 5 月 2 日 18:00 JST 之前禁止公开讨论。如有违规,可能会被追究责任。

考试结束后可以公开总分和认证级别,但请不要透露解题情况等信息。

约束条件

  • 1≤Q≤1051\leq Q\leq 10^5
  • Ti=1T_i=1 或 22
  • CiC_i 为小写英文字母
  • 1≤Xi≤1051\leq X_i\leq 10^5
  • 1≤Di≤1051\leq D_i\leq 10^5
  • Q, Ti, Xi, DiQ,\ T_i,\ X_i,\ D_i 均为整数
  • 至少存在一次 Ti=2T_i=2 的操作

样例解释 1

初始 SS 为空字符串。

  • 第 1 次操作后,SS 变为 aaaaa。
  • 第 2 次操作后,SS 变为 aa。删除了 33 个 a,其他字符未被删除。
  • 第 3 次操作后,SS 变为 aatttttttt。
  • 第 4 次操作后,SS 变为 aattttttttcccccccccc。
  • 第 5 次操作前,SS 长度为 2020,操作后 SS 变为空字符串。删除了 22 个 a,1010 个 c,88 个 t。
  • 第 6 次操作后,SS 仍为空字符串,没有字符被删除。

因此,第 2 次操作输出 32+02+⋯+02=93^2+0^2+\cdots+0^2=9,第 5 次操作输出 22+102+82=1682^2+10^2+8^2=168,第 6 次操作输出 00。

样例解释 2

初始 SS 为空字符串。

  • 第 1 次操作后,SS 变为 xxxxx。
  • 第 2 次操作后,SS 变为 xxxxxyyyyyyyy。
  • 第 3 次操作后,SS 变为 yyyyyy。删除了 55 个 x,22 个 y,52+22=295^2+2^2=29。
  • 第 4 次操作后,SS 变为 yyyyyyzzzzzzzz。

由 ChatGPT 4.1 翻译

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

首页