模拟散列表84分,2,3tle求助
查看原帖
模拟散列表84分,2,3tle求助
573404
该不会是aha吧楼主2022/2/17 15:18
#include<bits/stdc++.h>
//拉链法模拟哈希表;
using namespace std;

const int N=200003;
int h[N],e[N],ne[N],idx;
int n,c;
//插入函数
void insert(int x)
{
	int t=(x%N+N)%N;
	e[idx]=x;
	ne[idx]=h[t];
	h[t]=idx++;
}
//查询并返回满足条件的个数;
int find(int x)
{
	int t=(x%N+N)%N;
	int cnt=0;
	
	for(int i=h[t];i!=-1;i=ne[i])
	{
		if(e[i]==x) cnt++;
	}
	return cnt;
}

int main()
{
	int a[N];
	memset(h,-1,sizeof h);
	ios::sync_with_stdio(false);
	cin>>n>>c;
	
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		insert(a[i]);
	}
	
	int cnt=0; 
	for(int i=0;i<n;i++)
	{
		cnt+=find(a[i]-c);
	}
	cout<<cnt;
	
	return 0;
}
2022/2/17 15:18
加载中...