(非讨论区题解)
目前个人想到的是,将题意转化为求
∏i=1n(xai+x−ai)mod(xk−1) (1)
的常数项是否大于零,也即
∏i=1k−1(xi+x−i)cimod(xk−1) (2)
的常数项是否大于零,其中 ci 为 {an} 中有多少个数和 i 在 mod k 下同余。
通过处理循环节,可以 Θ(k) 的时间复杂度处理出 (2) 式乘积中的每一项是否大于零,然后 fft 暴力卷积起来,总时间复杂度就是 Θ(k2logk) 的。
但是这样的结果显然不让人满意,不知道各位有没有高论可以优化一下。