CF1188B.Count Pairsl(数学)

题意:

给出一个长度为n的数组a,两个整数p和k。

询问有多少数对\((x,y)(1 \leq x < y \leq n)\)使得\((a_x^2+a_y^2)(a_x+a_y)\)对p取模的结果为k。

保证p是质数。

题解:

\((a_x^2+a_y^2)(a_x+a_y)\%p=k\)

\((a_x^2+a_y^2)(a_x+a_y)(a_x-a_y)\%p=(a_x-a_y)k\%p\)

\((a_x^2+a_y^2)(a_x^2-a_y^2)\%p=(a_x-a_y)k\%p\)

\((a_x^4-a_y^4)\%p=(a_x-a_y)k\%p\)

\((a_x^4-ka_x)\%p=(a_y^4-ka_y)\%p\)

对每个a_x统计答案即可。

上一篇:408算法练习——排列序列(回溯法)


下一篇:Adobe illustrator/Ai 2019 软件安装包(附安装教程)