#P13382. [GCJ 2011 Finals] Runs

    ID: 13193 远端评测题 3000~6000ms 1024MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>2011组合数学Google Code Jam

[GCJ 2011 Finals] Runs

Description

给定一个只包含小写字母 aazz 的字符串 SS。每一段连续且相同的字符序列被称为一个“段”(run)。例如,字符串 "bookkeeper" 有 7 个段。请问有多少种不同的 SS 的排列方式,恰好拥有与 SS 相同数量的段?

如果存在某个下标 ii,使得排列 aa 和排列 bb 在该位置的字符不同(即 a[i]b[i]a[i] \neq b[i]),则认为这两个排列是不同的。

Input Format

第一行输入一个整数 TT,表示测试用例的数量。接下来的 TT 行,每行包含一个非空的小写字母字符串 SS,即待处理的字符串。

Output Format

对于每个测试用例,输出一行,格式为 "Case #xx: yy",其中 xx 表示测试用例编号(从 1 开始),yy 表示恰好有与 SS 相同数量段的不同排列数,对 10000031000003 取模。

2
aabcd
bookkeeper
Case #1: 24
Case #2: 7200

Hint

限制条件

  • 1T1001 \leq T \leq 100
  • SS 至少包含 11 个字符。

小数据范围(测试集 1 - 可见)

  • SS 最多包含 100100 个字符。
  • 时间限制:3 秒。

大数据范围(测试集 2 - 隐藏)

  • SS 最多包含 450000450000 个字符。
  • SS 最多包含 100100 个段。
  • 输入文件大小不超过 1 MB。
  • 时间限制:6 秒。

由 ChatGPT 4.1 翻译