AcWing 3288. 稀疏向量
原题链接
简单
作者:
syl
,
2021-03-07 15:26:34
,
所有人可见
,
阅读 1062
C++ 代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
int n,a,b;
vector<PII> u,v;
int main(){
//添加数据
cin>>n>>a>>b;
while(a--){
int k,val;
cin>>k>>val;
u.push_back(make_pair(k,val));
}
while(b--){
int k,val;
cin>>k>>val;
v.push_back(make_pair(k,val));
}
//双指针算法
ll res = 0;
int i=0,j=0;
while(i<u.size() && j<v.size()){
if(u[i].first == v[j].first){
res+=(ll)u[i].second*v[j].second;
i++,j++;
}
else if(u[i].first < v[j].first) i++;
else j++;
}
cout<<res<<endl;
return 0;
}
np厉害大神,你就是我的再生儿子
好方法,看懂双指针的意思了