贪心
https://leetcode.com/problems/count-non-decreasing-subarrays-after-k-operations/description/ 题目大意 给出 $n \ (n \le 10^5)$ 长的数组 $a$,其中 $1 \le a_i \le 10^9$,给出数字 $k \ (1 \le k \le 10^9)$。问有多少子数组,可以通过不超过 $k$ 次给单个位置 $+1$ 的操作,使得该子数组单调不减。 简要题解 容易发现,对于区间
…
https://codeforces.com/contest/1202/problem/D 题目大意 构造一个包含 $1, 3, 7$ 的字符串 $S \ (|S| \le 10^5)$ 使得其中 $1337$ 子序列的个数为 $n \ (1 \le n \le 10^9)$ 个。 简要题解 观察: 如果 $n$ 更小,我们可以直接 $133$ 然后加上 $n$ 个 $7$。或者 $1$ 是同理的。 如果用 $111333777$ 这样的结构,那么结果是 $n_1 n7 C(n3,
…
https://codeforces.com/contest/1913/problem/C 题目大意 给出 $m \ (m \le 10^5)$ 次操作,每次操作为之下两种之一: 给出 $x \ (0 \le x \le 29)$ 将 $2 ^ x$ 加入可重集。 给出 $y \ (0 \le x \le 10^9)$,问是否可以选出一些可重集中的元素使其和为 $y$。 简要题解 因为 $x$ 很小所以数组 $cnt$
…
https://codeforces.com/contest/1202/problem/A 题目大意 给出两个代表数字的二进制串 $A$ 和 $B$,没有前导零且 $|A|, |B| \le 10^5$。规定 $f(X)$ 为串 $X$ 对应的数字的值,有 $1 \le f(B) \le f(A)$。问取正整数 $k$,使得 $f(A) + f(B) \dot 2 ^ k$ 对应数字字符串的逆序字典序最小。问这
…
https://codeforces.com/contest/1251/problem/B 题目大意 给出 $n \ (\le 50)$ 个 $01$ 串,每个串 $s_i \ (|s_i| \le 50)$。可以任意交换任意两个串之间的一对字符,问最多能组成多少个回文串。 简要题解 我们最多可以得到 $n$ 个回文,我们尝试尽量达成这件事。 考虑所有串总长 $s = \sum s_i$ 的
…
https://codeforces.com/contest/1251/problem/C 题目大意 给出一个数字字符组成的字符串 $S \ (|S| \le 3 \times 10 ^ 5)$,允许任意次交换相邻的奇偶性不同的字符,问最后的得出的可以包含前导零的最小数字是多少。 简要题解 这题挺典,首先同种奇偶性的字符的相对关系是无法
…
https://codeforces.com/contest/1251/problem/D 题目大意 给出奇数 $n \ (< 2 \times 10^5)$ 个人的薪资范围,其中第 $i$ 个人的范围为 $[l_i, r_i] (1 \le l_i \le r_i \le 10^9)$,以及薪资和的上限 $\sum l_i \le s \le 2 \times 10^{14}$。问当所有人的薪资 $x_i$ 符合自己的范围,且和不超过 $s$ 时,中位数
…
https://codeforces.com/contest/797/problem/C 题目大意 给出小写字母构成的字符串 $A \ (|A| \le 10^5)$,和空串 $B, C$。每次操作可以做以下操作之一: 将 $A$ 开头的字符移动到 $B$ 结尾。 将 $B$ 结尾的字符移动到 $C$ 结尾 重复操作直到 $A, B$ 为空。问能得到字典序最小的 $C$ 是什
…
https://codeforces.com/contest/797/problem/B 题目大意 给出长度 $n \ (\le 10^5)$ 长的数组 $a \ (-10^4 \le a_i \le 10^4)$,保证其有和为奇数的子序列,问和为奇数的子序列最大是多少。 简要题解 显然我们要尽量选所有的正数让和尽量大,但这时如果和是偶数,那我们就需要减掉最
…
https://codeforces.com/contest/2005/problem/A 题目大意 使用 aeiou,构造 $n \ (\le 100)$ 的串,使得其回文子序列最少。(一样的回文下标不同要重复计算) 简要题解 容易发现,对于同一字母的所有组合,无论字母如何排布都会组成回文,那么需要不同字母组成的回文尽量
…
https://codeforces.com/contest/940/problem/B 题目大意 给定数字 $n, k, a, b (1 \le n, k, a, b \le 2 \times 10^9)$,使用两种操作将 $n$ 变为 $1$, 花费 $a$ 使 $n$ 减 $1$。 花费 $b$ 使 $n$ 变为 $n / k$ (仅在 $k | n$ 时可用)。 简要题解 显然贪心即可,对于每次先将 $n$ 减到 $k$ 的某个倍数
…
https://codeforces.com/contest/940/problem/C 题目大意 给出字符串 $S$ 以及长度 $k$, $(|S|,k \le 10^5)$。要求用 $S$ 相同的字符集,构造字典序最小的且字典序大于 $S$ 的,长度为 $k$ 的串 $T$ 。题目保证有解。 简要题解 注意到这里是字符串,和数字的比较大小是不同的。 对于 $k > n$
…
https://codeforces.com/contest/940/problem/D 题目大意 给出序列 $n(\le 10^5)$ 长的序列 $a$ 和 $b$。 $b_1 = b_2 = b_3 = b_4 = 0$。对于 $i \ge 5$ $b_i = 0$,如果 $a_{i - 4}, a_{i - 3}, a_{i - 2},a_{i - 1}, a_{i} > r$ 且 $b_{i - 4} = b_{i - 3} = b_{i - 2} = b_{i - 1} = 1$。 $b_i = 1$,如果 $a_{i - 4}, a_{i - 3}, a_{i - 2},a_{i - 1}, a_{i} < l$ 且
…
https://codeforces.com/contest/940/problem/E 题目大意 给出 $n \le 10 ^ 5$ 长的数组 $a (1 \le a_i \le 10 ^ 9)$ 和常数 $c \le 10^5$ ,可以将数组分为一些连续的子数组。对于每个子数组,可以将其最小的 $\lfloor \frac{len}{c} \rfloor$ 个元素的权值减去。问剩余权值的和的最小值是多少。 简要题解 重要观察:最终
…
https://codeforces.com/contest/954/problem/E 题目大意 给出 $N (\le 2 \times 10 ^ 5)$ 个水龙头的水量 $a_i (\le 10 ^ 6)$ 和温度 $t_i (\le 10 ^ 6)$,每个水龙头可以取 $0 \sim a_i$ 的实数单位水量,问可以混合出 $T (\le 10 ^ 6)$ 温度的水最多多少。 若每个龙头取 $c_i$ 单位水,则混合水的温度为 $\frac{\sum c_i t_i)}{\sum c_i}$ 简
…
https://codeforces.com/contest/1993/problem/D 题目大意 给出一个 $n \ (le 5 \cdot 10^5)$ 长的数组 $a$ 其中 $a_i \le 10^9$。给定一个 $k \ (\le 5 \cdot 10^5)$。 不断地从数组中删去一些长为 $k$ 的子数组(删除后把数组接起来),使得最后的数组长度 $\le k$。 问此时剩余元素的中位数
…
https://codeforces.com/contest/1997/problem/D 题目大意 给以棵 $1$ 为根的有根树,节点数 $n \ (2 \le n \le 2 \times 10^5)$。每个节点上有权重 $a_i \ (1 \le a_i \le 10^9)$。每次操作可以选择给节点 $i$ 的权值 $+1$ 给其子树中所有其他节点权值 $-1$。任意时刻结点权值不能为
…
https://codeforces.com/contest/1996/problem/F 题目大意 给定 $n \le 2 \cdot 10^5$ 的两个数组 $a$ 和 $b$。可以执行 $k \le 10^9$ 次操作,每次操作选择某个 $i$ 然后 $ans += a[i]$,之后 $a[i] = max(0, a[i] - b[i])$。问最大的 $ans$ 是多少。 简要题解 题目贪心的策略是显然的,只需要选当前最大
…
https://codeforces.com/problemset/problem/724/D 题目大意 给定一个字符串 $S$ 串长 $\le 10^5$ 给定 $m \le |S|$。选择一些下标,使得所有长度为 $m$ 的子串都至少包含一个备选的下标。找出一组符合规定的下标,使其字符任意重排之后字典序最小,输出这个最小字典序的串。 简要题
…
https://codeforces.com/contest/713/problem/C 题目大意 给定 $n \le 3000$ 的数组 $a$。每次操作可以使数组中的某个位置的值 $+1$ 或 $-1$。 问最少得操作次数使得数组严格单调递增。 简要题解 重要的 trick: $a_i < a_{i + 1} \iff a_i + 1 \le a_{i + 1} \iff a_i + 1 - i \le a_{i + 1} - i \iff a_i
…