CCFCSP试题编号:202006-2试题名称:稀疏向量
不断匹配相乘累加就好了
#include<iostream>
#include<vector>
#include <utility>
using namespace std;
int main() {
int n;
int a, b;
long long result=0; // 使用 long long
cin >> n >> a >> b;
vector<pair<int, int> > u, v;
int index, value;
for (int i = 0; i < a; i++) {
cin >> index >> value;
u.push_back({ index, value });
}
for (int i = 0; i < b; i++) {
cin >> index >> value;
v.push_back({ index, value });
}
int i = 0, j = 0;
while (i < a && j < b) {
if (u[i].first == v[j].first) {
result += u[i].second * v[j].second;
i++; j++;
}
else if (u[i].first > v[j].first) {
j++;
}
else {
i++;
}
}
cout << result << endl;
return 0;
}
这里面用了pair,如果不了解的,可以看一下妾身这一篇C++中的pair
谢谢大家!