总结
除了注意时间复杂度,判断是否会超时外,还要注意输出范围,判断是否溢出,如果可能溢出就改用long long。
一、题目要求
二、我的解法(100)
#include<iostream>
using namespace std;
const int N=1e6;
typedef pair<int,int> PII;
PII va[N];
PII vb[N];
int main(){
int n,a,b;
cin>>n>>a>>b;
for(int i=0;i<a;i++){
int index,value;
scanf("%d%d",&index,&value);
va[i]={index,value};
}
long long sum=0;//注意答案会溢出
for(int i=0,j=0;i<b;i++){
int index,value;
scanf("%d%d",&index,&value);
while(va[j].first<index) j++;//找到可能匹配的维度
if(va[j].first==index) sum+=va[j].second*value;
}
cout<<sum;
return 0;
}