牛客Steins;Gate(原根+FFT)

牛客Steins;Gate(原根+FFT)题目大意:给一个长度为nnn的序列

2023大厂真题提交网址(含题解):

www.CodeFun2000.com(http://101.43.147.120/)

最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注”塔子哥学算法”公众号获得每道题的题解。
在这里插入图片描述

题目大意:

给一个长度为 n n n的序列。对每一个 a k a_k ak,询问有多少个二元组 ( i , j ) (i,j) (i,j)满足 a i ∗ a j ( m o d   p ) = a k a_i*a_j(mod \ p)=a_k aiaj(mod p)=ak.

题目思路:

这里用到了一个定理,所有素数一定存在原根。那么对于 p p p的原根 g g g来讲.任意一个 x ∈ [ 0 , p − 1 ] x \in [0,p-1] x[0,p1].都存在唯一一个 i i i使得 g i = x g^i=x gi=x.所以上式可以换成: g i ∗ g j = g i + j = g k g^i*g^j=g^{i+j}=g^k gigj=gi+j=gk,这样就将乘法变成加法了。对 g g g构造多项式 A 2 ( x ) A^2(x) A2(x)即为答案.FFT求一下即可.

今天的文章牛客Steins;Gate(原根+FFT)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/67197.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注