atcoder#ARC060D. [ARC060F] 最良表現
[ARC060F] 最良表現
题目描述
を長さ 以上の文字列とします。 いかなる文字列 および 以上の整数 に対しても、 を 回繰り返した文字列が と異なるならば、 を良い文字列であると呼ぶことにします。 例えば、a
, bbc
, cdcdc
などは良い文字列ですが、 aa
, bbbb
, cdcdcd
などは良い文字列ではありません。
を長さ 以上の文字列とします。 項からなる列 について、 次の条件がともに満たされるならば、 を の良い表現と呼ぶことにします。
- すべての について、 は良い文字列である。
- をこの順に連結すると になる。
例えば、aabb
の場合、 の良い表現は次の つとなります。
aabb
a
abb
aab
b
a
ab
b
a
a
b
b
文字列 の良い表現のうち、項数 が最小であるものを、 の最良表現と呼ぶことにします。 例えば、aabb
の最良表現は aabb
の つのみとなります。
文字列 が与えられます。次の つを求めてください。
- の最良表現の項数
- の最良表現の総数を で割った余り
なお、 に対し、良い表現が存在することは保証されます。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
出力は 行からなる。
- 行目に、 の最良表現の項数を出力せよ。
- 行目に、 の最良表現の総数を で割った余りを出力せよ。
题目大意
设是一个长度至少为1的字符串,我们称是好的,当且仅当对于任意字符串和任意整数,由复制次并连接得到的字符串均与不同。 举个例子,a
,bbc
和cdcdc
是好串,然而aa
,bbbb
和cdcdcd
不是。
设是一个长度至少为1的字符串,对于一个由个元素组成的序列 ,我们称为的一个“亮眼表现”当且仅当下面的条件同时被满足:
- 对于任意,元素是一个好串。
- 把按顺序连接起来得到的字符串就是。
举个例子,当='aabb
'时,有五个亮眼表现:
- (
aabb
) - (
a
,abb
) - (
aab
,b
) - (
a
,ab
,b
) - (
a
,a
,b
,b
)
在的所有亮眼表现中,元素数量最少的那个(些)亮眼表现被称为的“全场最佳”。举个例子,当='aabb
'时,的全场最佳只有一个:(aabb
)。
给你一个字符串,请计算:
- 的一个全场最佳所含的元素数量
- 有多少个全场最佳(对1e9+7取模)
(数据保证一定存在亮眼表现)
aab
1
1
bcbc
2
3
ddd
3
1
提示
制約
- $ 1\ \leq\ |w|\ \leq\ 500000\ \,\ (=5\ \times\ 10^5) $
- は英小文字 (
a
-z
) のみからなる文字列である
部分点
- を満たすデータセットに正解した場合は、 点が与えられる。
Sample Explanation 2
- この入力に対しては、項数が の最良表現が以下の 通り存在します。 - b
cbc
- bc
bc
- bcb
c