概述
牛客小白月赛59 F.困难卷积(暴力)
题目有个很重要的条件 ∑ a i , ∑ b i ≤ 1 0 7 sum a_i,sum b_ile 10^7 ∑ai,∑bi≤107
那么显然最多不同的 a i a_i ai个数为: m ( m + 1 ) / 2 ≤ 1 0 7 m(m+1)/2le 10^7 m(m+1)/2≤107。
则 m ≤ 4000 mle 4000 m≤4000。那么我们用map存值,然后二重循环暴力算即可。
时间复杂度: O ( m 2 ) O(m^2) O(m2)
#include<bits/stdc++.h>
using namespace std;
int main(){
map<int,int>m1,m2;
int n,i,x;
cin>>n;
for(i=0;i<n;i++){
cin>>x;
m1[x]++;
}
for(i=0;i<n;i++){
cin>>x;
m2[x]++;
}
long long res=0;
for(auto i:m1){
for(auto j:m2){
res+=1ll*i.second*j.second*((int)sqrt(abs(i.first-j.first)));
}
}
cout<<res;
}
最后
以上就是怡然小甜瓜为你收集整理的牛客小白月赛59 F.困难卷积(暴力)牛客小白月赛59 F.困难卷积(暴力)的全部内容,希望文章能够帮你解决牛客小白月赛59 F.困难卷积(暴力)牛客小白月赛59 F.困难卷积(暴力)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复