标签:i++ ted iostream print als return 解决 cannot 遍历
#include<iostream>
#include<vector>
using namespace std;
bool isprime(int x){
for(int i = 2; i * i <= x; i++){
if(x % i == 0) return false;
}
return true;
}
int main(){
int tsize, m, n, a, pos;
scanf("%d%d%d", &tsize, &m, &n);
while(!isprime(tsize)) tsize++;
vector<int> v(tsize);
for(int i = 0; i < m; i++){
scanf("%d", &a);
int flag = 1;
for(int j = 0; j < tsize; j++){
pos = (a + j * j) % tsize;
if(v[pos] == 0){
v[pos] = a;
flag = 0;
break;
}
}
if(flag == 1) printf("%d cannot be inserted.\n", a);
}
int ans = 0;
for(int i = 0; i < n; i++){
scanf("%d", &a);
for(int j = 0; j <= tsize; j++){
ans++;
pos = (a + j * j) % tsize;
if(v[pos] == a || v[pos] == 0) break;
}
}
printf("%.1f", ans * 1.0 / n);
return 0;
}
A 1145 Hashing - Average Search Time (25分)([哈希映射,哈希表,平?方探测法)
标签:i++ ted iostream print als return 解决 cannot 遍历
原文地址:https://www.cnblogs.com/tsruixi/p/13170279.html