1145 Hashing - Average Search Time

#include
#include
#include
using namespace std;
bool isP(int n){
	if(n<=1) return false;
	for(int i=2;i<=sqrt(n);i++){
		if(n%i==0) return false;
	}
	return true;
}
int main(){
	int MSize,N,M,num;
	cin>>MSize>>N>>M;
	while(!isP(MSize)) MSize++;//while!!
	vector v(MSize);
	for(int i=0;i>num;
		for(int j=0;j>num;
		for(int j=0;j<=MSize;j++){//探测不到是MSize+1次 
			ans++;
			if(v[(num+j*j)%MSize]==0||v[(num+j*j)%MSize]==num)
				break;
		}
	}
	printf("%.1lf\n",ans*1.0/M);
	return 0;
}

你可能感兴趣的:(PAT甲级)