关于正确性的求助
查看原帖
关于正确性的求助
404036
akk123楼主2021/3/12 22:40

题解中提到 对于询问的一段区间 可以由小到大尝试除以它的因数 如果判定是循环节则更新len

while(len != 1)
        {
            ys[++tt] = nxt[len];
            len = len/nxt[len];
        }
        len = r-l+1;
        for(int j = 1;j <= tt;j++)
        {
            int t = len/ys[j];
            if(check(l,r-t,l+t,r) == 1)
            {
                len = t;
            }
        }
        printf("%d\n",len);

如何证明 len=t 操作不会丢失最优解,,,举个例子 长度21 我发现1-7是他的循环节 那如果最小循环节是3就出不来了 求助

2021/3/12 22:40
加载中...