就是计算 把第一个序列加上K之后和第二个序列有多少个数是相同的
#include<stdio.h> #include<math.h> int p[200001]={0}; int negp[200001]={0}; int main(){ int arr[100001],T,i,j,n,arr1[100001]; scanf("%d",&T); while(T--){ for(i=0;i<200001;i++){ p[i]=0; negp[i]=0; } int max=0; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&arr[i]); } for(i=0;i<n;i++){ scanf("%d",&arr1[i]); } for(i=0;i<n;i++){ if((arr[i]-arr1[i])>=0) p[arr[i]-arr1[i]]++; else negp[abs(arr[i]-arr1[i])]++; } for(i=0;i<200001;i++){ if(p[i]>max) max=p[i]; if(negp[i]>max) max=negp[i]; } printf("%d\n",max); } return 0; }