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

题意:

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

分析:

从取模的角度思考。

  • \(n\leq 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\n");
    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\n",ans);
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/1024-xzx/p/12411676.html