AT_agc020_e.[AGC020E] Encoding Subsets

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

考虑一种对仅包含 0 和 1 的字符串进行编码的规则如下:

  • 字符串 0 和 1 分别可以被编码为 0 和 1。
  • 如果字符串 AA 和 BB 分别可以被编码为 PP 和 QQ,则字符串 ABAB 可以被编码为 PQPQ。
  • 如果字符串 AA 可以被编码为 PP,且 K≥2K \geq 2 为正整数,则字符串 AA…AAA\ldots A(将 AA 连续拼接 KK 次)可以被编码为 (PPxKK)。

例如,字符串 001001001 可以被编码为 001001001、00(1(0x2)x2)1、(001x3) 等,还有其他的编码方式。

此外,当满足以下条件时,称字符串 AA 是字符串 BB 的「子集」:

  • AA 和 BB 长度相等,且都只包含 0 和 1。
  • 对于所有 AiA_i 为 1 的下标 ii,BiB_i 也为 1。

给定一个只由 0 和 1 组成的字符串 SS,请对于 SS 的所有子集,分别求出每个子集的编码方法数,并求这些数量的总和对 998244353998244353 取模后的结果。

输入格式

输入通过标准输入给出,如下所示:

SS

输出格式

输出 SS 的所有子集的编码方法数之和对 998244353998244353 取模的值。

输入输出样例

  • 输入#1

    011

    输出#1

    9
  • 输入#2

    0000

    输出#2

    10
  • 输入#3

    101110

    输出#3

    156
  • 输入#4

    001110111010110001100000100111

    输出#4

    363383189

说明/提示

限制条件

  • 1≤∣S∣≤1001 \leq |S| \leq 100
  • SS 仅包含字符 0 和 1。

样例解释 1

SS 的子集有 44 个:

  • 011 可以编码为 011、0(1x2)。
  • 010 可以编码为 010。
  • 001 可以编码为 001、(0x2)1。
  • 000 可以编码为 000、0(0x2)、(0x2)0、(0x3)。

因此,所有子集的编码方法数总和为 2+1+2+4=92 + 1 + 2 + 4 = 9。

样例解释 2

本例中 SS 仅有 11 个子集,其编码方式有 1010 种。

样例解释 4

不要忘记,最后的答案需要对 998244353998244353 取模。

由 ChatGPT 5 翻译

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

首页