#icpc2015summerday3a. [icpc2015summer_day3_a]Analyzing Bit (Yet Special) Strings

[icpc2015summer_day3_a]Analyzing Bit (Yet Special) Strings

分析字符串不仅在现实中不容易,在梦里面亦如此。

你昨天读到了一本关于特殊字符串的理论的书,不过由于书的内容太多,你现在只记得它最奇怪的定义:

  • 对于一个长度为 nn0/10/1 字符串 TT,第 ii 个位置上的字符为 TiT_i。我们设 Ai,jA_{i,j}Ti,Ti+1,,TjT_i,T_{i+1},\dots,T_{j}00 的个数,Bi,jB_{i,j}Ti,Ti+1,,TjT_i,T_{i+1},\dots,T_{j}11 的个数。如果以下条件成立,我们就称 TT 是一个特殊字符串:
    • i[1,n]\forall i\in[1,n]A1,iB1,iA_{1,i}\geqslant B_{1,i}Ai,nBi,nA_{i,n}\leqslant B_{i,n}

这一天,你在梦中看到了一个 0/10/1 字符串 SS。你知道,要想逃离这个梦,唯一的办法就是找到最好的特殊字符串。由于这个梦很奇怪,因此这里有一个也很奇怪的判断两个特殊字符串哪一个更好的规则:

  • 对于两个字符串 S1,S2S_1,S_2,设 LiL_iSiS_i 的长度,PiP_iSiS_i 作为子串在 SS 中出现的次数。那么,我们称 S1S_1S2S_2,当且仅当 L1P1>L2P2L_1\cdot P_1>L_2\cdot P_2

现在,你需要尽快求出最好的特殊字符串以逃离这个梦境。你需要先求出最大的 LPL\cdot P 的值,再求出使得 LPL\cdot P 最大的,也就是最好的特殊字符串。如果有多个使得 LPL\cdot P 最大的特殊字符串,你只需要输出任意一个。

数据范围与限制:

  • 2S2×1052\leqslant |S|\leqslant 2\times 10^5
  • 至少有一个特殊字符串是 SS 的子串。

Translated by Eason_AC
2021.11.18