随笔分类 - codeforces
摘要:A. Vasya And Password 分类讨论 点击查看代码 void solve() { std::string s; std::cin >> s; int f1 = 0, f2 = 0, f3 = 0; for (auto & c : s) { f1 += c >= 'a' && c <=
阅读全文
摘要:A. Function Height 题意:\(n\)个数给他们赋值,使得和恰好为\(k\), 求其中的最大值最小。 点击查看代码 void solve() { i64 n, k; std::cin >> n >> k; std::cout << (k + n - 1) / n << "\n"; }
阅读全文
摘要:A. Cloudberry Jam 题意:每个物品花费2的代价,问\(n\)个物品花费多少代价。 点击查看代码 void solve() { int n; std::cin >> n; std::cout << n * 2 << "\n"; } B. Large Array and Segments
阅读全文
摘要:A. Palindromic Twist 判断对应位置的差是不是等于0或2。 点击查看代码 void solve() { int n; std::cin >> n; std::string s; std::cin >> s; for (int i = 0, j = n - 1; i < j; ++
阅读全文
摘要:A. Death Note 点击查看代码 void solve() { int n, m; std::cin >> n >> m; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; } for (int i
阅读全文
摘要:A. Game Shopping 点击查看代码 void solve() { int n, m; std::cin >> n >> m; std::vector<int> a(n), b(m); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; } f
阅读全文
摘要:A. Kamilka and the Sheep 题意:给你\(n\)个数,给每个数加上一个非负整数后,选出两个数使得它们的\(gcd\)最大。 因为\(gcd(x, y) = gcd(x, y - x)\)。然后我猜是\(max-min\)。 点击查看代码 void solve() { int n
阅读全文
摘要:A. Commentary Boxes 题意:把\(n\)变成\(m\)的倍数,每次加一花费\(a\),每次加一花费\(b\)。求最小花费。 点击查看代码 void solve() { i64 n, m, a, b; std::cin >> n >> m >> a >> b; std::cout <
阅读全文
摘要:A. Chess Placing 题意:一个长度为\(n\)的数组上有\(n / 2\)个点,你想要移动这些点使得它们的位置奇偶性相同,求最小移动数。 只有两种情况,要么在偶数位置要么在奇数位置,判断两种情况就行。 具体就是从小到大看,拿最小的位置移动到需要移动到的最小位置。 点击查看代码 void
阅读全文
摘要:A. Minimum Binary Number 题意:给你一个01串,你每次可以交换相邻的两个元素,或者把两个相邻的1变成一个1。求二进制表示小最小的数。 显然我们可以把1消除到只剩一个。那么答案就是一个1加原串的所有0. 要特判原串只有一个0的情况。 点击查看代码 void solve() {
阅读全文
摘要:A. Equator 题意:求最前的前缀其和大于等于总和一半。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0; i < n; ++ i) { std::cin >> a[i]; }
阅读全文
摘要:A. Olympiad Date 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(10); a[0] = 3; a[1] = 1; a[3] = 1; a[2] = 2; a[5] = 1; std::vector<int
阅读全文
摘要:A. Tetris 找每一列的最小值。 点击查看代码 void solve() { int n, m; std::cin >> n >> m; std::vector<int> cnt(n); for (int i = 0; i < m; ++ i) { int x; std::cin >> x;
阅读全文
摘要:A. Treasure Hunt 点击查看代码 void solve() { int x, y, a; std::cin >> x >> y >> a; a %= (x + y); if (a < x) { std::cout << "NO\n"; } else { std::cout << "YE
阅读全文
摘要:A. Diagonal Walking 模拟 点击查看代码 void solve() { int n; std::cin >> n; std::string s; std::cin >> s; int ans = n; for (int i = 0; i + 1 < n; ++ i) { if ((
阅读全文
摘要:A. Serval and String Theory 题意:给你一个字符串\(s\),你每次可以交换其中两个位置的字符,最多操作\(k\)次,求可不可以使得\(s\)的字典序比\(res(s)\)小。其中\(rev(s)\)为\(s\)翻转后的的字符串。 首先如果\(s\)的所有位置都是一样的,无
阅读全文
摘要:A. Partition 题意:把数组分成两部分,加上第一部分,减去第二部分。 显然把正数给第一部分,负数给第二部分。 点击查看代码 void solve() { int n; std::cin >> n; std::vector<int> a(n); int ans = 0; for (int i
阅读全文
摘要:A. Word Correction 模拟 点击查看代码 void solve() { int n; std::cin >> n; std::string s; std::cin >> s; std::string ans; auto check = [&](char c) -> bool { re
阅读全文
摘要:A. Water The Garden 题意:长度为\(n\)的直线上有\(k\)个点,第\(i\)个点的坐标为\(x_i\)。第\(t\)时刻第\(i\)个点会覆盖\([i - t + 1, i + t - 1]\)。求覆盖所有点最小时间。 可以二分加差分做。数据范围很小,也可以枚举\(t\)然后
阅读全文
摘要:A. Garden 题意:\(n\)个数里选一个\(k\)的因子,使得\(\frac{k}{a_i}\)最小。 点击查看代码 void solve() { int n, k; std::cin >> n >> k; std::vector<int> a(n); for (int i = 0; i <
阅读全文

浙公网安备 33010602011771号