NC239212. 困难卷积
描述
输入描述
第一行一个整数 。
第二行 个整数表示序列 。第三行 个整数表示序列 。,,。
输出描述
一行一个整数表示答案。
示例1
输入:
4 1 2 3 4 2 3 3 3
输出:
12
pypy3 解法, 执行用时: 1514ms, 内存消耗: 135720K, 提交时间: 2022-10-29 14:37:49
import math input() a=list(map(int,input().split())) b=list(map(int,input().split())) dic1,dic2={},{} for k in a: if k not in dic1: dic1[k]=1 else: dic1[k]+=1 for k in b: if k not in dic2: dic2[k]=1 else: dic2[k]+=1 ans=0 for m in dic1: for n in dic2: ans+=int(math.sqrt(abs(m-n)))*dic1[m]*dic2[n] print(ans)
C++(g++ 7.5.0) 解法, 执行用时: 611ms, 内存消耗: 900K, 提交时间: 2022-10-28 20:33:35
#include<bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; map<long long,long long>a,b; for(int i=1,x;i<=n;i++)cin>>x,a[x]++; for(int i=1,x;i<=n;i++)cin>>x,b[x]++; long long ans=0; for(auto i:a) for(auto j:b) ans+=i.second*j.second*floor(sqrt(abs(i.first-j.first))); cout<<ans; }
C++(clang++ 11.0.1) 解法, 执行用时: 596ms, 内存消耗: 876K, 提交时间: 2023-03-14 20:02:52
#include<bits/stdc++.h> using namespace std; int main(){ int n;cin>>n; map<long long,long long>a,b; for(int i=1,x;i<=n;i++)cin>>x,a[x]++; for(int i=1,x;i<=n;i++)cin>>x,b[x]++; long long ans=0; for(auto i:a) for(auto j:b) ans+=i.second*j.second * floor(sqrt(abs(i.first-j.first))); cout<<ans; }