AT_tkppc2015_i.重要証拠 (Important evidence)

通过率:0%

AC君温馨提醒

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

题目描述

joisino 姐姐听说学校里有一位高中生侦探,于是去找他。
见面后发现,这位侦探似乎陷入了困境。
因为他发现了一台可能作为案件关键证据的电脑,但数据已经被移除。
幸运的是,电脑上的操作日志还保存着,若能运用这些日志恢复数据,就能快速解决案件。
joisino 姐姐因为编程能力出众,被委托来恢复这些数据。

操作过程如下:

  1. 一开始,有 TT 种不同的数据,编号从 11 到 TT。每种数据由一个位串 SiS_i 表示。
  2. 之后重复执行以下三种操作中的某一些:
    1. 合并两个数据。合并后的数据是其位串的拼接,即 Sa+SbS_a+S_b。合并后,所有引用到 aa 和 bb 的变量都将指向这个新数据。如果 ee 和 ff 都指向同一数据,而后再将 ee 和 gg 合并,那么 ee、ff、gg 都将指向新数据。如果 aa 和 bb 已经合并,则跳过此操作。
    2. 撤销操作,所有数据回到第 kk 次操作后的状态。这里的操作包括合并、撤销及输出。
    3. 输出某个数据中的最大连续 00 的数量。这部分信息是案件中被删除的数据,也是解开谜团的关键。

joisino 姐姐利用她的编程技巧,根据日志记录编写了一个程序来恢复数据。

输入格式

输入通过标准输入提供,格式如下:

  • 第一行一个整数 TT(1≤T≤1051 \le T \le 10^5),表示数据种类的数量。
  • 第二行一个位串 AA(1≤length(A)≤1051 \le \text{length}(A) \le 10^5),后续将用到。
  • 接下来的 TT 行中,每行包含两个整数 LiL_i 和 RiR_i(1≤Li≤Ri≤length(A)1 \le L_i \le R_i \le \text{length}(A)),代表第 ii 种数据的位串 SiS_i 是 AA 从第 LiL_i 个字符到第 RiR_i 个字符。
  • 下一行一个整数 QQ(1≤Q≤1051 \le Q \le 10^5),是日志的记录数量。
  • 接下来的 QQ 行中,每行包含 22 或 33 个整数,它们按时间顺序记录了日志信息。
    • 若有 22 个整数:
      • 若第一个数字是 00,那么第二个数字表示 aia_i(1≤ai≤T1 \le a_i \le T),这是要输出数据 aia_i 中最大连续 00 的数量。如果没有 00,就输出 00。
      • 若第一个数字是 11,那么第二个数字表示 KK($0 \le K \le $ 当前已处理的查询数),将所有数据回到第 KK 次操作后的状态。
    • 若有 33 个整数:
      • 第一个数字是 22,接下来的两个数字是 aia_i 和 bib_i(1≤ai,bi≤T1 \le a_i, b_i \le T),表示合并数据 aia_i 和 bib_i。如果这两个数据已经合并,则忽略此操作。

输出格式

参考输入格式说明,输出时在每个输出结果末尾加一个换行符。

输入输出样例

  • 输入#1

    5
    11111
    2 3
    2 3
    2 4
    4 4
    4 5
    5
    2 5 2
    0 4
    0 1
    2 5 5
    1 2

    输出#1

    0
    0

说明/提示

配分

本题包括部分得分机会。

  • 数据集 1 满足 Q≤50Q \le 50,length(A)≤50\text{length}(A) \le 50,T≤50T \le 50,正确处理可得 10 分。
  • 数据集 2 无附加限制,正确解决可得 150 分。

本翻译由 AI 自动生成

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

首页