首页 > 代码库 > PAT 1078
PAT 1078
因爲輸入反了所以WA了好多次... 真的太困了貼完睡覺。
二次探查法都忘記是什麼了,原來還有不能被插入的情況.. 等到真的要去找工作的時候再認真念一念書吧~
1 #include <vector> 2 #include <iostream> 3 #include <cmath> 4 5 using namespace std; 6 7 bool is_prime(int num){ 8 if (num == 1) 9 return false;10 if (num == 2)11 return true;12 13 int sqr = sqrt(num);14 15 if (num % 2 == 0)16 return false;17 18 for (int i = 3; i <= sqr; i += 2){19 if (num % i == 0)20 return false;21 }22 23 return true;24 }25 26 int main(){27 int n, table_size;28 29 cin >> table_size >> n;30 31 while (!is_prime(table_size))32 table_size++;33 34 vector<bool> hash_table(table_size, false);35 vector<int> rec_res(n, -1);36 37 for (int i = 0; i < n; i++){38 int num;39 cin >> num;40 41 for (int j = 0; j < table_size; j++){42 int idx = (num + j * j) % table_size;43 44 if (!hash_table[idx]){45 hash_table[idx] = true;46 rec_res[i] = idx;47 48 break;49 }50 }51 }52 53 for (int i = 0; i < rec_res.size() - 1; i++){54 if (rec_res[i] != -1)55 cout << rec_res[i] << " ";56 else57 cout << "-" << " ";58 }59 60 if (rec_res[rec_res.size() - 1] != -1)61 cout << rec_res[rec_res.size() - 1] << endl;62 else63 cout << "-" << endl;64 }
PAT 1078
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。