1 条题解

  • 0
    @ 2026-9-9 9:04:52

    题解

    思路

    记 cb(Z)c_b(Z) 为二进制串 ZZ 中字符 bb 的出现次数。

    做法

    若 c1(X)=c1(Y)c_1(X)=c_1(Y),两边长度相等当且仅当 c0(X)=c0(Y)c_0(X)=c_0(Y);此时令 T=ST=S 即可,所以答案分别为 Yes 或 No。否则由长度相等可唯一确定 $|T|=|S|\bigl(c_0(Y)-c_0(X)\bigr)/\bigl(c_1(X)-c_1(Y)\bigr)$;若结果不是非负整数,则无解。

    设算出的长度为 mm。当 X≠YX\ne Y 时,两个拼接式相等当且仅当 S,TS,T 都是同一个长度为 gcd⁡(∣S∣,m)\gcd(|S|,m) 的字符串的若干次重复,因此只需检查 Si=Si mod gS_i=S_{i\bmod g} 是否对所有位置成立,其中 g=gcd⁡(∣S∣,m)g=\gcd(|S|,m);满足时总能选取相应的重复串作为 TT。

    复杂度

    每组数据只需统计字符数并扫描一次 SS,总时间复杂度为 O(∑(∣S∣+∣X∣+∣Y∣))O\left(\sum(|S|+|X|+|Y|)\right),额外空间为 O(1)O(1)。

    • 1

    信息

    ID
    1598
    时间
    2000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者