luogu#P11487. 「Cfz Round 5」Gnirts 10

    ID: 35190 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>洛谷原创O2优化组合数学洛谷月赛

「Cfz Round 5」Gnirts 10

题目背景

English statement. You must submit your code at the Chinese version of the statement.


In Memory of F\text{F}\rule{66.8px}{6.8px}.

题目描述

题面还是简单一点好。

  • 给定 n,mn, m,以及一个长为 n+mn + m01\tt{01}SS
  • 对于 01\tt 01TT,定义 f(T)f(T)SS 的最长的前缀的长度,使得该前缀是 TT 的子序列 ^\dagger
  • 对于每个 恰包含 n\bm n1\tt 1m\bm m0\tt 0 01\tt{01}TT,求 f(T)f(T) 的和。答案对 29332560772933256077^\ddagger 取模。

\dagger:请注意,子序列可以不连续。换句话说,aabb 的子序列,当且仅当在 bb 中删去 0\geq 0 个字符后,可以得到 aa。注意,空串总是任何串的子序列。

\ddagger:模数为质数。

输入格式

第一行包含两个整数 n,mn, m

第二行包含一个长度为 n+mn + m01\tt 01SS

输出格式

输出一行一个整数,表示答案对 29332560772933256077 取模后的结果。

2 1
000
3
5 5
0010111011
1391

提示

「样例解释 #1」

所有可能的序列有且仅有公共序列 0\texttt{0}。因为恰有 33 种不同的 TT110,101,011\tt 110, 101, 011),所以答案为 1×3=31\times 3 = 3

「数据范围」

对于所有测试数据,保证 1n,m3×1061 \leq n, m \leq 3\times 10^6

本题采用捆绑测试。

  • Subtask 0(13 points):max(n,m)5\max(n, m) \leq 5
  • Subtask 1(13 points):max(n,m)100\max(n, m) \leq 100
  • Subtask 2(34 points):max(n,m)3×103\max(n, m) \leq 3 \times 10^3
  • Subtask 3(40 points):无特殊限制。