试题编号: 202006-2
试题名称: 稀疏向量
时间限制: 2.0s
内存限制: 512.0MB
需要注意的细节:
内积的计算方式为 对应位置的乘积之和
也就是说只有u v对应位置的数都不为0的时候才需要计算。
考虑是否是数据溢出问题。
实际上不需要使用n,不需要考虑n的问题,
答案可能会超过int范围,使用long long 类型储存。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
int n, a, b;
cin >> n >> a >> b;
map<ll, int> mp;
ll ans = 0;
for(int i = 0; i < a; i++){
int index,value;
cin >> index >> value;
mp[index] = value;
}
for(int i = 0; i < b; i++){
int index, value;
cin >> index >> value;
if(mp[index]){
ans += mp[index] * value;
}
}
cout<<ans<<endl;
return 0;
}```