蜜汁MLE哈希求助
  • 板块P1102 A-B 数对
  • 楼主Lysea
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/20 01:09
  • 上次更新2023/11/3 08:45:19
查看原帖
蜜汁MLE哈希求助
616733
Lysea楼主2023/7/20 01:09

本地跑没问题,交上去#4莫名MLE

用哈希做的:

#include<bits/stdc++.h>
#define int long long
#define N 1000005
#define M 30000001
using namespace std;
int n,m,a[N],b[M],c[M],ans;
signed main(){
	ios::sync_with_stdio(false);
//	freopen("P1102_4.in","r",stdin);
	cin>>n>>m;
	for(int i=1,k;i<=n;i++){
		cin>>a[i],k=a[i]%M;
		while(b[k]){
			if(b[k]==a[i]) break;
			k++;
			if(k==M) k=0;
		}//取模哈希
		b[k]=a[i];
		c[k]++;
	}
	for(int i=1,k,h;i<=n;i++){
		k=(m+a[i])%M,h=m+a[i];
		while(b[k]){
			if(b[k]==h){
				ans+=c[k];
				break;
			}//查询
			k++;
			if(k==M) k=0; 
		}
	}cout<<ans;
    return 0;
}

2023/7/20 01:09
加载中...