http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4025
题目连接、很巧妙地一个题目
题意:就是给你两个整数数列,ai和bi,a序列加上一个常数,问和b序列相同位置上的数相同的数最大有多少个?
解:用bi-ai求众数
当有很多的差值相等时证明加上一个常数能够使他们相等
#include <cstdio>
#include <iostream>
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <bits/stdc++.h>
#define MOD 0xc0c0c0c0
using namespace std;
const int maxn=100000+10;
int str[maxn];
int arr[maxn];
map<int ,int> dict;
bool cmp(int a,int b){return a>b;}
int main()
{
int t;scanf("%d",&t);
while(t--)
{
dict.clear();
int n,m; scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&str[i]);
for(int i=0;i<n;i++) {
scanf("%d",&m);
dict[m-str[i]]++;
}
int ans=MOD;
map<int,int >::iterator it;
for(it=dict.begin();it!=dict.end();it++)
ans=max(ans,it->second);
cout<<ans<<endl;
}
}