AT_abc418_g.[ABC418G] Binary Operation

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

共有 1616 个整数元组 (A,B,C,D)(A, B, C, D) 满足 A,B,C,D∈{0,1}A, B, C, D \in \lbrace 0, 1 \rbrace。对于每一个元组,解决如下问题。

给定一个只由 0 和 1 组成的非空字符串 SS,当且仅当满足以下条件时,称 SS 为美丽字符串:

  • (条件)你可以反复执行以下操作,直到 SS 的长度变为 11,并且最终剩下的唯一字符为 1。
    1. 任选一个整数 ii,满足 1≤i≤∣S∣−11 \leq i \leq |S| - 1。
    2. 按如下方式定义整数 xx:
      • 如果 $S_i = $ 0 且 $S_{i+1} = $ 0,则 x=Ax = A。
      • 如果 $S_i = $ 0 且 $S_{i+1} = $ 1,则 x=Bx = B。
      • 如果 $S_i = $ 1 且 $S_{i+1} = $ 0,则 x=Cx = C。
      • 如果 $S_i = $ 1 且 $S_{i+1} = $ 1,则 x=Dx = D。
    3. 删除 SiS_i 和 Si+1S_{i+1},并在它们的位置插入对应于 xx 的数字。
      例如,如果 $S = $ 10101 且你选择 i=2i = 2,则操作后字符串为 1001(若 B=0B = 0),或 1101(若 B=1B = 1)。

给定一个长度为 NN 的只由 0 和 1 组成的字符串 TT。

  • 令 LL 为 TT 的所有子串中最长的美丽字符串的长度(若 TT 的所有子串都不是美丽字符串,则 L=−1L = -1)。
  • 令 MM 为 TT 的所有子串中美丽字符串的个数。

求 LL 和 MM。即使两个子串内容相同,只要它们在 TT 中的位置不同,也要分别计数。

什么是子串?一个字符串 SS 的子串是通过从 SS 的开头删除零个或多个字符、从结尾删除零个或多个字符得到的字符串。
例如,10 是 101 的子串,但 11 不是 101 的子串。

输入格式

输入按如下格式从标准输入读入:

NN TT

输出格式

输出 1616 行。第 ii 行应输出对应于满足 i−1=8A+4B+2C+Di-1 = 8A + 4B + 2C + D 的 (A,B,C,D)(A,B,C,D) 的 LL 和 MM,用空格分隔。

输入输出样例

  • 输入#1

    3
    110

    输出#1

    1 2
    2 3
    2 3
    3 5
    1 2
    2 3
    2 3
    3 5
    3 3
    2 3
    3 4
    3 5
    3 3
    2 3
    3 4
    3 5
  • 输入#2

    4
    0000

    输出#2

    -1 0
    -1 0
    -1 0
    -1 0
    -1 0
    -1 0
    -1 0
    -1 0
    4 4
    4 4
    4 6
    4 6
    4 6
    4 6
    4 6
    4 6
  • 输入#3

    30
    011011100101110111100010011010

    输出#3

    1 17
    4 31
    29 263
    29 280
    29 232
    29 247
    30 240
    30 447
    30 418
    29 225
    30 435
    30 435
    30 435
    30 435
    30 439
    30 452

说明/提示

样例解释 1

以 (A,B,C,D)=(0,0,0,1)(A,B,C,D)=(0,0,0,1) 为例。
取 TT 的第 11 到第 22 个字符得到字符串 11,它是美丽字符串,因为选择 i=1i=1 并执行操作后,字符串变为 1。
在 (A,B,C,D)=(0,0,0,1)(A,B,C,D)=(0,0,0,1) 的情况下,TT 的美丽子串如下三种:

  • 取 TT 的第 11 个字符得到的字符串 1。
  • 取 TT 的第 22 个字符得到的字符串 1。
  • 取 TT 的第 11 到第 22 个字符得到的字符串 11。

数据范围

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • NN 为整数。
  • TT 是长度为 NN 的只包含 0 和 1 的字符串。

由 ChatGPT 4.1 翻译

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

首页