1.简单模拟
/**
* 202006-2
* 稀疏向量
*/
#include <iostream>
#include <cstdio>
#include <map>
using namespace std;
map<int,int> v,u;
int n,a,b;
long long sum=0;
int main() {
ios::sync_with_stdio(false);
cin>>n>>a>>b;
for(int i=1;i<=a;i++){
int key;
int value;
// scanf("%d%d",&key,&value);
cin>>key>>value;
v.insert({key,value});
}
for (int i = 1; i <= b; i++) {
int key;
int value;
// scanf("%d%d", &key, &value);
cin>>key>>value;
u.insert({key, value});
}
auto v1=v.cbegin();
while (v1!=v.end()){
if (u.count(v1->first)!=0){
sum+=v1->second*u[v1->first];
}
v1++;
}
cout<<sum;
return 0;
}
3.感悟:
(1)计算结果的类型一定要设置成long long
,否则会溢出
long long sum=0;
(2)一定要加上ios::sync_with_stdio(false);
,否则会超时。本句可以用来加速。