题目描述
两个稀疏向量:大部分分量是 ,只记下非零项。第一个向量有 个非零项,第二个有 个;每个非零项给「坐标 值」,同一向量内坐标互不相同。求两个向量的点积:所有同坐标非零项的「值乘值」之和;没有同坐标则点积为 。
思路:把一个向量的非零项装进 map<long long, long long>,再遍历另一个向量的每个非零项,用 find 查同坐标——找到就「值乘值」累加(谁装 map、谁被遍历都行)。
输入格式
第一行一个整数 ()。
接下来 行,每行一个坐标 和一个值 (,,)。
然后一行一个整数 ()。
接下来 行,格式同上。
输出格式
一行一个整数:点积。数据保证点积的绝对值在 long long 表示范围内。
样例
输入:
3
1 2
5 3
9 -1
4
3 4
5 6
9 10
12 7
输出:
8
只有坐标 与 同在两个向量里:;坐标 的 在对面没有同伴,不参与。
数据范围
,, 且 。提示:乘的是值(second)——把坐标当值乘起来,数字看着也有模有样,答案完全是另一回事。