同步赛链接
A-原初的信纸(最值,STL)
题意:
找 n 个数的最大值.
参考代码:
void solve() {
int n;
std::cin >> n;
std::vector<int> a(n);
for (auto &c : a)
std::cin >> c;
std::cout << *max_element(a.begin(), a.end()) << '\n';
}
B-骑士的对决(思维)
模拟题.(博弈)
思路:
从守卫骑士的两张牌入手,如果守卫骑士拥有 'S' 和 ‘J’,那么对于远征骑士,如果他拥有‘S’那么,出于守卫骑士已经知道远征骑士选的牌了,所以他会选择 ‘S’ ,这样就是平局,相反,如果远征骑士拥有 'J' ,那么守卫骑士必定拿出 ‘S’来战胜对方,如果远征骑士拥有 ‘B’,那么守卫骑士必定拿出 ‘J’来战胜对方,所以要么平局,要么是守卫骑士赢.剩下的两种情况参考第一种情况进行模拟即可.
参考代码:
#include <bits/stdc++.h>
//模拟
using ll = long long;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
char c;
std::string s;
std::cin >> s >> c;
std::map<char, bool> mp;
mp[s[0]] = true, mp[s[1]] = true;
if (mp['S'] && mp['J'])
{
if (c == 'S') {
std::cout << "lyrnb";
} else {
std::cout << "pmznb";
}
} else if (mp['S'] && mp['B']) {
if (c == 'B') {
std::cout << "lyrnb";
} else {
std::cout << "pmznb";
}
} else {
if (c == 'J') {
std::cout << "lyrnb";
} else {
std::cout << "pmznb";
}
}
return 0;
}
C-秘密的议会(算数)
直接计算即可.
参考代码:
void solve() {
int cnty{}, cntn{};
std::string s;
std::cin >> s;
std::transform(s.begin(), s.end(), s.begin(), ::tolower);
for (char c : s) {
cnty += (c == 'y');
cntn += (c == 'n');
}
int len = s.size();
if (cnty >= len / 2) {
std::