随笔分类 -  codeforces

1 2 3 4 5 ··· 9 下一页
摘要:A. Souvlaki VS. Kalamaki 题意:一个数组\(a\),你可以将它重排。然后从左到右操作,奇数位置你操作,偶数位置另一个人操作。每次可以选择交换\(a_i, a_{i+1}\)或者不操作。你想使得数组升序,另一个不想。求能不能使得数组升序。 考虑排序后的\(a\),对于每个偶数位 阅读全文
posted @ 2025-11-11 01:49 maburb 阅读(481) 评论(0) 推荐(2)
摘要:A. Sequence Game 题意:一个数组\(a\),每次选择两个相邻的数,用它们之间的一个值替换它们两个。求最后能不能使得留下的数是\(x\)。 如果\(\min(a) \leq x \leq \max(a)\)则可行。 最小值和最大值和别人操作时可以留下自己,然后让这两个值最后一起操作。 阅读全文
posted @ 2025-11-07 02:00 maburb 阅读(520) 评论(0) 推荐(2)
摘要:A. Square? 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int a, b, c, d; std::cin >> a >> b >> c >> d; if (a == b && b == c && 阅读全文
posted @ 2025-10-29 00:50 maburb 阅读(538) 评论(0) 推荐(0)
摘要:A. Pizza Time 题意:有\(n\)个物品,每次分成三部分,你拿走最少的一部分,第二大的丢弃,最大的保留下一轮。求你最多可以拿到多少。 我们可以分\(1, 1, n - 2\)。这样我们得到\(\lfloor \frac{n-3}{2} \rfloor\)个,然后剩下\(3\)个可以拿一个 阅读全文
posted @ 2025-10-25 01:06 maburb 阅读(518) 评论(2) 推荐(0)
摘要:A. Notelock 题意:一个二进制串,问有多少位置的前\(k-1\)个位置没有\(1\)。 从前往后扫,维护一个可以包含的最右位置就行。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n, k 阅读全文
posted @ 2025-10-20 01:51 maburb 阅读(549) 评论(0) 推荐(2)
摘要:A. Beautiful Average 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; std::vector<int> a(n); for (int i = 0 阅读全文
posted @ 2025-10-18 01:25 maburb 阅读(496) 评论(2) 推荐(0)
摘要:A. Circle of Apple Trees 题意:一个环形数组,每次到一个位置可以选择拿走这个元素或者跳过,然后走到下一个位置。每次拿的数要比之前拿的大,求最多拿多少数。 显然可以从小到大拿,那么答案就是不同数的个数。 点击查看代码 #include <bits/stdc++.h> using 阅读全文
posted @ 2025-10-11 00:58 maburb 阅读(499) 评论(0) 推荐(7)
摘要:A. Candies for Nephews 题意:求大于等于\(n\)的最小\(3\)的倍数。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::cin >> n; std::cout 阅读全文
posted @ 2025-10-07 01:04 maburb 阅读(729) 评论(0) 推荐(3)
摘要:A. Increase or Smash 题意:你有一个全\(0\)数组,每次可以使得数组全部加上一个数或者使得某些位置变为\(0\)。求变成\(a\)的最小操作数。 最少的操作方案是,先把\(a\)去重后排序,然后从大到小每次加\(a_i - a_{i-1}\),然后把小于\(a_i\)的位置都变 阅读全文
posted @ 2025-10-04 14:10 maburb 阅读(216) 评论(0) 推荐(0)
摘要:A. Be Positive 题意:一个数组\(a\),只包含\(-1, 0, 1\)。你每次可以使得一个数加一,求使得数组乘积为正的最少操作次数。 显然只需要操作\(-1\)或者\(0\)。\(0\)必须都加一。那么如果\(-1\)是偶数个,不需要操作,否则需要操作一个\(-1\)两次变成\(1\ 阅读全文
posted @ 2025-09-26 02:07 maburb 阅读(701) 评论(0) 推荐(0)
摘要:A. Equal Occurrences 题意:求\(a\)的一个最长子序列,使得每个数出现的次数相同。 记录每个数出现的次数,排序后从小到大枚举出现次数,那么比它多的数都可以选。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void 阅读全文
posted @ 2025-09-22 01:13 maburb 阅读(781) 评论(0) 推荐(1)
摘要:A. All Lengths Subtraction 题意:一个排列,对于每个\(k \in [1, n]\),你都要选择一个长度为\(k\)的子数组使得它们都减一,求有没有方案使得最终所有数都是\(0\)。 考虑\(k\)从大到小,发现做\(n\)的时候\(1\)变成\(0\),此时如果\(1\) 阅读全文
posted @ 2025-09-18 01:10 maburb 阅读(754) 评论(2) 推荐(3)
摘要:A. Cut the Array 题意:把数组分成三段,使得每段和模\(3\)后的值都相同或者都不相同。 \(n\)很小,暴力枚举分段就行了。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; s 阅读全文
posted @ 2025-09-16 00:58 maburb 阅读(735) 评论(4) 推荐(1)
摘要:A. Shift Sort 题意:一个\(01\)串,每次可以选择\(i, j, k\)三个位置让它们左移或右移,求使得字符串升序的最小操作数。 记有\(cnt\)个\(0\),如果一个\(0\)不在前\(cnt\)个位置里,那么它需要一次交换,且每次交换最多让一个\(0\)复位。所以这样位置的个数 阅读全文
posted @ 2025-09-10 01:05 maburb 阅读(291) 评论(0) 推荐(1)
摘要:A. Maple and Multiplication 题意:给你\(a, b\),每次可以让\(a\)乘以任何数或者让\(b\)乘以任何数,求\(a, b\)相等的最小操作数。 显然\(a, b\)都变成\(lcm(a, b)\)最优。 点击查看代码 #include <bits/stdc++.h 阅读全文
posted @ 2025-09-09 01:38 maburb 阅读(725) 评论(2) 推荐(2)
摘要:A. In the Dream 题意:比赛上半场比分为\(a:b\),下半场为\(c:d\),没有一个队伍能连续赢三次,求这个比分可不可能。 一方每赢两次另一方就要断他连胜,然后最后还可以接两次胜利然后结束,那么有\(a * 2 + 2 \leq b\),\(b * 2 + 2 \leq a\)。同 阅读全文
posted @ 2025-08-29 12:47 maburb 阅读(279) 评论(0) 推荐(0)
摘要:A. Painting With Two Colors 题意:一个长度为\(n\)的数组,先把一段长度为\(a\)的子数组染为红色,再把一段长度为\(b\)的子数组染为蓝色,蓝色会覆盖红色。求能不能使得数组是回文。 因为要左右对称,所以肯定是染色的两个子数组的中心位置应该相同。 那么如果\(a > 阅读全文
posted @ 2025-08-27 02:01 maburb 阅读(601) 评论(2) 推荐(1)
摘要:A. Redstone? 题意:给你一个数组,使得\(\frac{a_1}{a_2} \times \frac{a_2}{a_3} \times ... \times \frac{a_{n-1}}{a_n} = 1\)。 发现式子其实是\(\frac{a_1}{a_n} = 1\); 那么只要有两个 阅读全文
posted @ 2025-08-25 01:08 maburb 阅读(395) 评论(0) 推荐(2)
摘要:A. Homework 按题意模拟。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n, m; std::string a, b, c; std::cin >> n >> a >> m >> b > 阅读全文
posted @ 2025-08-22 01:00 maburb 阅读(669) 评论(0) 推荐(1)
摘要:A. Lever 题意:balabala 输出\(\sum_{i=1}^{n} \max(0, a_i - b_i)) + 1\)。 点击查看代码 #include <bits/stdc++.h> using i64 = long long; void solve() { int n; std::c 阅读全文
posted @ 2025-08-11 13:51 maburb 阅读(642) 评论(0) 推荐(1)

1 2 3 4 5 ··· 9 下一页