C. Kuroni and Impossible Calculation(抽屉原理)

题目
C. Kuroni and Impossible Calculation(抽屉原理)_第1张图片
C. Kuroni and Impossible Calculation(抽屉原理)_第2张图片
题意:输入n,m;给出n个数,求任意两个数差值的绝对值modm的值。
思路:直接o(n * n)会超时;若n>m,利用抽屉原理,至少有两个数同余,结果为0;否则,直接o(n * n)暴力判断。
抽屉原理:10本书放入要9个抽屉里,无论怎么样放,至少有一个抽屉里面放不少于两本书。此题n>m,最多有m-1个余数,则n中至少两个数同余,差值为0。

AC代码

#include 

using namespace std;
#define ll long long
const int maxn=2e5+10;
ll a[maxn];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1; i<=n; i++)
    cin>>a[i];
    if(n>m)
    cout<<"0"<<endl;
    else
    {
        int 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;
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

你可能感兴趣的:(数论专题)