1 条题解
-
0
set
#include <bits/stdc++.h> using namespace std; int n; string s; set<string> se; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; getline(cin, s); // 读掉 n 后面的换行 while (n--) { getline(cin, s); if (s[0] == 'a') { // add s = s.substr(4); se.insert(s); } else if (s[0] == 'f') { // find s = s.substr(5); if (se.find(s) == se.end()) cout << "no\n"; else cout << "yes\n"; } } return 0; }
哈希后 unordered_set
#include <bits/stdc++.h> using namespace std; int n; string s; unordered_set<int> se; const int P = 29; unsigned long long getHash(const string &s) { unsigned long long hash = 0; for (int i = 0; i < s.length(); i++) hash = hash * P + s[i]; return hash; } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; getline(cin, s); // 读掉 n 后面的换行 while (n--) { getline(cin, s); if (s[0] == 'a') { // add s = s.substr(4); se.insert(getHash(s)); } else if (s[0] == 'f') { // find s = s.substr(5); if (se.find(getHash(s)) == se.end()) cout << "no\n"; else cout << "yes\n"; } } return 0; }
- 1
信息
- ID
- 676
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 55
- 已通过
- 27
- 上传者