1 条题解

  • 0
    @ 2025-8-24 21:50:29

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Yajnun
    **

    搬运于2025-08-24 21:50:29,当前版本为作者最后更新于2019-01-25 21:17:42,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    若小串aa的首位在c[x]c\left [ x \right ]位出现 ,则 a[i]a\left [ i\right ]c[x+i]c\left [ x+i \right ]位出现。若两者相同,a(i+x)+b=ax+ai+ba(i+x)+b=a*x+a*i+b,令t=ai+bt=a*i+b,则在模nn意义下

    a[i]=0a\left [ i \right ]=0taxpt1-t\leqslant ax\leqslant p-t-1,令l=t,r=pt1(mod n)l=-t,r=p-t-1 (mod~ n)

    a[i]=1a\left [ i \right ]=1ptaxt1p-t\leqslant ax\leqslant -t-1,令l=pt,r=t1(mod n)l=p-t,r=-t-1 (mod~ n)

    lrl\leqslant raxS=[l,r]a*x\in S=[l,r],否则axS=[0,l][r,n1]a*x\in S=[0,l]\cup [r,n-1]

    通过枚举ii可得到这样一组约束条件,通过对其取交集可求出axa*x的范围。对前者可直接求出,对后者不如转换成其补集的并集的补集。因为aann互质,所以在x可以任意取的情况下,axa*x[0,n1][0,n-1]是一一对应的关系,S\left |S \right |即为axa*x的所有取值。

    因为实际上xx不能完全取完11nn的值,所以对于应再枚举有哪些x[nm+1,n1],axSx\in[n-m+1,n-1],a*x\in S,用总数减去这个值即为答案。

    • 1

    信息

    ID
    2662
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者