代码思路:创建一个map接收键和值,然后遍历第二个数组检查键是否已存在与map中,若存在则进行内积运算,最后输出;
代码实现:
#include<iostream>
#include<map>
using namespace std;
int main()
{
int n, a, b;
int x, y;
long long sum = 0; // 初始化求和变量为0
cin >> n >> a >> b;
map<int, int> mp; // 利用STL中的map存储数据
for (int i = 0; i < a; i++) // 输入第一个数组
{
cin >> x >> y;
mp[x] = y; // 将输入的x,y值作为一组键值对存入map中
}
for (int i = 0; i < b; i++) // 输入第二个数组
{
cin >> x >> y;
sum += y * mp[x]; // 判断键x是否存在,若存在则将y值与map中的值相乘并累加到求和变量中
}
cout << sum; // 输出计算结果
return 0;
}