一种我也不知道对不对的做法,但是除了部分点MLE,其余点均AC,所以可能是对的(((
但是被256mb卡爆了,不知道是STL的问题还是什么,代码如下:
#include<bits/stdc++.h>
#define mod 1000000007
using namespace std;
int n,a[2020],ans;
unordered_map<int,unordered_set<int> > p;
unordered_map<int,bool> vis;
signed main()
{
cin.tie(0)->sync_with_stdio(0);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
vis.clear();
int x;
cin>>x;
for(int j=1;j<=n;j++)
{
int k=(long long)x*a[j]%mod;
if(vis[k]) continue;
if(p[k].find(j)==p[k].end()) vis[k]=1,p[k].insert(j),ans=max(ans,(int)p[k].size());
}
}
cout<<ans;
}