CodeForces-1305C Kuroni and Impossible Calculation【思维】

题意:

给出 (n) 个数的数组 (a),和数 (m) ,求 (prod_{1leq i<j leq n}{|a_i-a_j|};mod;m)

分析:

从取模的角度思考。

  • (nleq m) 时,直接暴力算;
  • (n>m) 时,这 (n) 个数中必然至少有 (2) 个数取模 (m) 的余数相同,即他们的差值是 (m) 的倍数,所以最终结果为 (0)

完全没有想过这样写。
复杂度:(O(n^2))

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+5;
int a[N];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    if(n>m)
        printf("0
");
    else
    {
        ll ans=1;
        for(int i=1;i<n;i++)
        {
            for(int j=i+1;j<=n;j++)
                ans=ans*abs(a[i]-a[j])%m;
        }
        printf("%d
",ans);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/1024-xzx/p/12411676.html