345
A - Leftrightarrow
给你一个由 <
=
和 >
组成的字符串
请判断
字符串 <
=
s 和一个 >
的连接,且顺序如此长度为
没有看清楚只包含箭头
void solve() {
string s;cin >> s;
if (s[0] != '<') {
cout << "No\n";return;
}
if (s[s.size() - 1] != '>') {
cout << "No\n";return;
}
for (int i = 1;i < s.size() - 1;i++) {
if (s[i] != '=') {
cout << "No\n";return;
}
}
cout << "Yes\n";
}
B - Integer Division Returns
给定一个介于
void solve() {
ll x;cin >> x;
int add = 1;
if (x % 10 != 0 && x >= 0) {
cout << x / 10 + 1 << '\n';
} else if (x % 10 == 0 && x >= 0) {
cout << x / 10 << '\n';
}
if (x < 0) {
cout << x / 10 << '\n';
}
}
C - One Time Swap
给你一个字符串
- 设
是 的长度。选择一对整数 ,使得 与 中的 -3 和 -3 个字符互换。
可以证明,在这个问题的约束条件下,你总是可以完成这个操作的。
void solve() {
string s;cin >> s;
map<char, int> mp;
for (int i = 0;i < s.size();i++) {
mp[s[i]]++;
}
bool ok = false;
ll ans = 1ll * s.size() * (s.size() - 1) / 2;
for (auto [x, y] : mp) {
ans -= 1ll * y * (y - 1) / 2;
if (y >= 2)ok = true;
}
if (ok)ans++;
cout << ans << '\n';
}
D - Tiling
有一个由
第
请判断是否有可能将这些图块放置在网格上,从而满足以下所有条件:
- 每个单元格都正好被一个图块覆盖。
- 有未使用的瓦片也没关系。
- 瓦片在放置时可以旋转或翻转。但是,每块瓦片必须与单元格的边缘对齐,不得超出网格。
Solution
DFS
非常麻烦,我觉得现在补了这个题对我的水平不会有提高,因此(待更