题解:P12883 [蓝桥杯 2025 国 C] 正方形构造
Liyuqiao11 · · 题解
题目大意:
给你一个由
解题思路:
我们首先要先翻译一下题目所给的已知条件。首先令(
代码实现:
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10,M = 1e3+10;
const int md = 1e9+7;
#define int long long
int n,a[N],mp[M],cnt[N],ans;
signed main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
mp[a[i]]++;
}
for(int i=1;i<=1000;i++){
for(int j=1;j<=1000;j++){
if(i==j) cnt[i*j]=(cnt[i*j]%md+mp[i]%md*(mp[i]-1)%md*(mp[i]-2)%md*(mp[i]-3)%md)%md;
else cnt[i*j]=(cnt[i*j]%md+mp[i]%md*(mp[i]-1)%md*mp[j]%md*(mp[j]-1)%md)%md;
}
}
for(int i=1;i<=N-10;i++){
ans=(ans%md+cnt[i]%md)%md;
}
cout<<ans<<endl;
return 0;
}