CSP2020-06(二)稀疏向量
考虑稀疏矩阵的长度不确定性,用map(或者vector)来存放。
代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <map>
typedef long long LL;
using namespace std;
int main()
{
map<int,int>m1;
map<int,int>m2;
int n,a,b;
scanf("%d%d%d",&n,&a,&b);
int index,value;
for(int i=0;i<a;i++){
scanf("%d%d",&index,&value);
m1.insert(pair<int,int>(index,value));
}
for(int j=0;j<b;j++){
scanf("%d%d",&index,&value);
m2.insert(pair<int,int>(index,value));
}
map<int,int>::iterator it1=m1.begin();
map<int,int>::iterator it2=m2.begin();
LL res=0;
while(it1!=m1.end()&&it2!=m2.end()){
if(it1->first==it2->first){
res+=it2->second*it1->second;
it1++;
it2++;
}
else if(it1->first<it2->first){
it1++;
}
else {
it2++;
}
}
cout<<res;
return 0;
}