昨晚参加了一场线上赛,前段时间准备期末考试,有2周没摸键盘了,都有些生疏了。
上来想先签到C题,结果华丽丽遇到了坑,这个坑单独分享。之后有些小担心,就迅速刷掉了A
(避免鸭蛋,又被老码农嘲笑了,美其名曰:有舍才有得,小舍小得,大舍大得)
后来看了D题,最近刚学了拓扑排序,喜上眉梢,一次AC了D题。
E题:看完题目,感觉是动态规划题,剩下得时间不太多,就放弃了。(赛后补题)
B题:提点分吧,又随手刷掉了B题。(分分必争,其实像老码农说的,真的没必要,但还是不舍。。。)
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
void best_coder() {
int a, b;
cin >> a >> b;
if (b == a * 2 || b == a * 2 + 1) {
cout << "Yes";
} else {
cout << "No";
}
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
void best_coder() {
int n;
string s;
cin >> n >> s;
for (int i = 1; i < n; ++i) {
int ans = 0;
for (int j = 0; j < n - i; ++j) {
if (s[j] != s[j + i]) {
++ans;
} else {
break;
}
}
cout << ans << endl;
}
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}
单独分享,遇到了个坑,耽误了很多时间
板子题,解题思路就不赘述了
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
void best_coder() {
int n;
cin >> n;
unordered_map<string, string> g(n);
unordered_map<string, pair<int, int>> vp(n);
for (int i = 0; i < n; ++i) {
string a, b;
cin >> a >> b;
g[b] = a;
++vp[a].first;
++vp[b].second;
}
queue<string> q;
for (auto i: vp) {
if (i.second.first == 0) {
q.push(i.first);
}
}
int ans = vp.size();
while (!q.empty()) {
--ans;
if (vp[q.front()].second == 0) {
q.pop();
continue;
}
q.push(g[q.front()]);
q.pop();
}
if (ans == 0) {
cout << "Yes";
} else {
cout << "No";
}
}
void happy_coder() {
}
int main() {
// 提升cin、cout效率
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
// 小码匠
best_coder();
// 最优解
// happy_coder();
// 返回
return 0;
}