Codeforces Round #572 (Div. 1)
B.Count Pairs
=
二话不说,先推一波式子
推到这里就够了
我们发觉可以直接用 map 记录第 个元素的 对 取模的值
然后直接算答案即可
代码不难写出
#include<bits/stdc++.h>
#define BetterIO ios::sync_with_stdio(false)
using namespace std;
#define int long long
int N,K,MOD,A[300001];
map< int,int >Map;
signed main(void)
{
BetterIO;
register int i,Ans=0;cin>>N>>MOD>>K;
for(i=1;i<=N;i++)
{
register int Remainder;cin>>A[i],A[i]%=MOD;
Remainder=A[i]*A[i]%MOD*A[i]%MOD*A[i]%MOD-K*A[i]%MOD+MOD;
Ans+=Map[Remainder%MOD];
Map[Remainder%MOD]++;
}
cout<<Ans<<endl;
return 0;
}