CCF 202006-2稀疏向量 防超时
题目描述
解题思路
这道题比较简单,只要把两个向量对应不为零的项乘积加和就可以了。对于这道题来说主要问题是运行超时的问题。如果要用cin输入的话,我们需要加上ios::sync_with_stdio(false);
来提升输入效率。我们选择map存储数据。代码很短,如下所示。
详细代码
#include <iostream>
#include <map>
using namespace std;
int main()
{
ios::sync_with_stdio(false);//提升输入效率
int n,a,b;
cin>>n>>a>>b;
map<int,int> mp;
int num,val;
long long int sum=0;
for(int i=0;i<a;i++)
{
cin>>num>>val;
mp[num]=val;
}
for(int i=0;i<b;i++)
{
cin>>num>>val;
if(mp[num]!=0)
sum=sum+mp[num]*val;
}
cout<<sum;
return 0;
}