Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated) C. Kuroni and Impossible Calculation(鸽巢原理+数学)

题目链接
在这里插入图片描述
思路:首先我们都明白一个式子就是如果(a-b)%m0,那么我们是不是都知道a%mb%m,又因为如果n>m的话%m的取值就在【0,999】内,也就是肯定会存在两个数是重合的(这就是鸽巢原理),那么n大于m的时候%m不就是0了,剩下的暴力就行了。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+1;
const ll inf=1e18;
ll a[maxn];
int main()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;++i) scanf("%lld",&a[i]);
	if(n>m) {
		printf("0\n");return 0;
	}
	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("%lld\n",ans);
} 
发布了171 篇原创文章 · 获赞 0 · 访问量 5790

猜你喜欢

转载自blog.csdn.net/qq_42479630/article/details/104651373