1499A. Domino on Windowsill
题意:给定一个 的空间,
#card=math&code=k1%E3%80%81k2%20%E8%A1%8C%E8%A6%81%E8%AE%BE%E7%BD%AE%E4%B8%BA%E7%99%BD%E8%89%B2%282%20%5Ctimes%201%29) 然后其他的设置为黑色
思路:为了满足条件需要判断一下白色和黑色的方块是否足够。
int main() {ios_base::sync_with_stdio(false), cin.tie(0);int _ = 1;for (cin >> _; _--;) {int n, k1, k2, w, b;cin >> n >> k1 >> k2 >> w >> b;if (2 * w <= k1 + k2 and 2 * b <= 2 * n - k1 - k2) cout << "YES\n";elsecout << "NO\n";}return 0;}
1499B. Binary Removals
找下前缀的 0和后缀的 1的个数进行比较
int main() {ios_base::sync_with_stdio(false), cin.tie(0);int _ = 1;for (cin >> _; _--;) {string s;cin >> s;int L = 0, R = s.size() - 1;while (L < s.size() and (s[L] == '0' or (L == 0 or s[L - 1] == '0')))L++;while (R >= 0 and(s[R] == '1' or (R == (int)s.size() - 1 or s[R + 1] == '1')))R--;if (L >= R) cout << "YES\n";elsecout << "NO\n";}return 0;}
学习高 Rank 的大佬写法
int main() {ios_base::sync_with_stdio(false), cin.tie(0);int _ = 1;for (cin >> _; _--;) {string s;cin >> s;int i = s.find("11");int j = s.rfind("00");cout << (i != -1 && j != -1 && i < j ? "NO" : "YES") << endl;}return 0;}
1499C. Minimum Grid Path
using ll = long long;int main() {ios_base::sync_with_stdio(false), cin.tie(0);int _ = 1;for (cin >> _; _--;) {int n;cin >> n;vector<int> c(n);ll ans = LLONG_MAX;ll mi[2] = {(ll)1E13, (ll)1E13}, sm[2] = {0, 0}, cnt[2] = {0, 0};for (int i = 0; i < n; ++i) {ll c;cin >> c;mi[i & 1] = min(mi[i & 1], c);cnt[i & 1] += 1;sm[i & 1] += c;ans = min(ans, mi[0] * (n - cnt[0]) + sm[0] + mi[1] * (n - cnt[1]) +sm[1]);}cout << ans << "\n";}return 0;}
