Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!).Kuroni and Impossible Calculation
http://codeforces.com/contest/1305题目链接
昨晚想了一个半小时愣是没想出来,惭愧;
发个博客记录一下;
一看题数据有点大,想到暴力肯定不行,于是开始想dp;
后面发现也不行就开始推数学式子。最后十分钟推出来可以用范德蒙行列式求解,但是没打上去。
今天看了正解发现果然还是得暴力,不过要加一个限制条件
当 n>mod 的时候,结果一定是0 这时数据量就缩小到三位数了。
为什么呢,因为鸽巢原理, n>mod的时候 必定存在 a%mod=b%mod =》|a-b|%mod=0;
上代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 long long ans=1; 4 long long a[200005]; 5 int main() 6 { 7 int n,m; 8 cin>>n>>m; 9 for(int i=0;i<n;i++) 10 { 11 cin>>a[i]; 12 } 13 if(n>m) 14 { 15 cout<<0<<endl;return 0; 16 } 17 else 18 { 19 for(int i=0;i<n;i++) 20 { 21 for(int j=i+1;j<n;j++) 22 { 23 ans=(ans*abs(a[i]-a[j]))%m; 24 } 25 } 26 } 27 cout<<ans%m<<endl; 28 }
rush!