AT_arc060_d.[ARC060F] 最良表現

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

设 xx 为长度至少为 11 的字符串。对于任意字符串 yy 以及大于等于 22 的整数 kk,如果 yy 重复 kk 次得到的字符串与 xx 不同,则称 xx 为好字符串。例如,a、bbc、cdcdc 等是好字符串,而 aa、bbbb、cdcdcd 等不是好字符串。

设 ww 为长度至少为 11 的字符串。对于由 mm 项组成的序列 F=( f1, f2, ..., fm)F=(\,f_1,\,f_2,\,...,\,f_m),如果同时满足以下条件,则称 FF 是 ww 的好表示:

  • 对于所有 i (1≤i≤m)i\ (1\leq i\leq m),fif_i 是好字符串。
  • 将 f1, f2, ..., fmf_1,\,f_2,\,...,\,f_m 按顺序连接起来得到 ww。

例如,当 w=w=aabb 时,ww 的好表示共有 55 种:

  • ((aabb))
  • ((a,,abb))
  • ((aab,,b))
  • ((a,,ab,,b))
  • ((a,,a,,b,,b))

在所有 ww 的好表示中,项数 mm 最小的表示称为 ww 的最优表示。例如,w=w=aabb 的最优表示只有 ((aabb)) 这一种。

给定字符串 ww,请你求出以下两项:

  • ww 的最优表示的项数;
  • ww 的最优表示的总数对 1000000007 (=109+7)1000000007\ (=10^9+7) 取模的结果。

保证对于给定的 ww,一定存在好表示。

输入格式

输入为一行,包含字符串 ww。

输出格式

输出共两行:

  • 第 11 行输出 ww 的最优表示的项数。
  • 第 22 行输出 ww 的最优表示的总数对 10000000071000000007 取模的结果。

输入输出样例

  • 输入#1

    aab

    输出#1

    1
    1
  • 输入#2

    bcbc

    输出#2

    2
    3
  • 输入#3

    ddd

    输出#3

    3
    1

说明/提示

限制

  • 1≤∣w∣≤500000 (=5×105)1\leq |w|\leq 500000\ (=5\times 10^5)
  • ww 仅由小写英文字母(a-z)组成。

部分分

  • 若能正确解决 1≤∣w∣≤40001\leq |w|\leq 4000 的数据,将获得 400400 分。

样例解释 2

对于该输入,项数为 22 的最优表示共有如下 33 种:

  • ((b,,cbc))
  • ((bc,,bc))
  • ((bcb,,c))

由 ChatGPT 4.1 翻译

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

首页