题目描述:A , B
两人在散步,给你他们的速度和散步多少时间后需要休息多久,问到达指定时间后,谁走在前面。
思路:根据题意模拟即可
时间复杂度:\(O(1)\)
参考代码:
void solve() { auto cal = [](int a, int b, int c, int x)->int { int res = a * b * (x / (a + c)); x %= (a + c); res += b * min(a, x); return res; }; int a, b, c, d, e, f, x; string res = "Takahashi"; cin >> a >> b >> c >> d >> e >> f >> x; int A = cal(a, b, c, x), B = cal(d, e, f, x); if (A < B) res = "Aoki"; else if (A == B) res = "Draw"; cout << res << '\n'; return; }
题目描述:给你一个字符串,若该字符串的所有字符都不相同,且不仅含有大写字母,还含有小写字母,则该字符串是wonderful
。
思路:根据题意模拟即可。
时间复杂度:\(O(n^2)\),\(n\)为字符串长度。
参考代码:
void solve() { string s; cin >> s; int n = s.size(); auto check = [&](char ch)->bool { for (auto&& c : s) if (c >= ch && c <= ch + 25) return true; return false; }; string res = "Yes"; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { if (s[i] != s[j]) continue; res = "No"; } } if (!check('a') || !check('A')) res = "No"; cout << res << '\n'; return; }
题目描述:给你\(N\)个字符串和一个数字\(K\),求从这\(N\)个字符串中选出一些字符串所组成的所有子集中,满足集合中字符出现次数为\(K\)的数量的最大值。
思路:考虑到\(N\)很小,暴力枚举即可
时间复杂度:\(O(26 \times 2^N)\)
参考代码:
void solve() { int n, k; cin >> n >> k; vector<string>strs(n); for (int i = 0; i < n; ++i) cin >> strs[i]; vector<int>cnt(26, 0); int res = 0; auto dfs = [&](auto&& dfs, int cur)->void { if (cur == n) { int ct = 0; for (auto&& c : cnt) ct += c == k; res = max(res, ct); return; } dfs(dfs, cur + 1); for (auto&& c : strs[cur]) cnt[c - 'a']++; dfs(dfs, cur + 1); for (auto&& c : strs[cur]) cnt[c - 'a']--; return; }; dfs(dfs, 0); cout << res << '\n'; return; }
题目描述:给你一个长度为\(n\)的序列\(A\),求满足等式\(\frac{A_i}{A_j} = A_k\)的三元组\((i ,j , k)\)的数量。
思路:考虑到数据范围很小,直接暴力枚举\(A_k\)即可。
时间复杂度:\(O(mlogm)\) ,其中\(m = \mathop{max}\limits_{i = 1}^{n}\{a_i\}\)。
参考代码:
void solve() { int n, a; const int N = 2e5 + 5; vector<int>cnt(N + 1, 0); cin >> n; for (int i = 1; i <= n; ++i) cin >> a, cnt[a]++; long long res = 0; for (int i = 1; i < N; ++i) { if (cnt[i] == 0) continue; for (int j = i; j < N; j += i) { int dy = j / i; res += 1ll * cnt[i] * cnt[j] * cnt[dy]; } } cout << res << '\n'; return; }