「RiOI-03」匀速相遇 题解
假设第
所以只需要在输入数组
不要忘了特判
#include<bits/stdc++.h>
using namespace std;
int a[1145141],b[1145141];
unordered_map<long long,int> ai;
int main(){
ios::sync_with_stdio(false);
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]!=0){
long long temp=1ll*i*a[i];
ai[temp]++;//ai[temp] 存的是满足 i*a_i=temp 的 i 的个数
}
}
long long s=0;
for(int j=1;j<=m;j++){
cin>>b[j];
if(b[j]!=0){
long long temp=1ll*j*b[j];
if(ai.count(temp)){//如果有 i 满足 i*a_i=j*b_j
s+=ai[temp];//则将满足等式的 i 的个数加到答案中
}
}
}
cout<<s;
return 0;
}