2023牛客寒假算法基础集训营2-L

2023牛客寒假算法基础集训营2-L

https://ac.nowcoder.com/acm/contest/46810/L

预处理

int main()
{
cin>>n>>p;
for(int i=1; i<=n; i++)
{
scanf("%lld",&a[i]);
a[i]%=p;
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(i==j) continue;
c[a[i]*a[j]%p]++;
d[i][a[i]*a[j]%p]+=2;
}
}
for(int x=0; x<=p-1; x++)
{
ll ans=0;
for(int k=1; k<=n; k++)
{
ll tar=(x-a[k]+p)%p;
ans+=(c[tar]-d[k][tar]);
}
printf("%lld ",ans);
}
puts("");
return 0;
}