Codeforces Round #724 ABCDE 题解 (Java/C++)

A. Omkar and Bad Story 题解 显然,如果数组中存在任意一个小于0的负数。那么通过将这个数作为被减数,数组可以被无限增长。 但是如果没有负数,那么从0-100的所有数一定能够覆盖题目中所有的输入。 代码 Java…

Codeforces Round #724 Omkar and Medians 题解 (Java/C++)

题解 首先我们可以注意到,对于b[i+1],相比b[i]来说,其实只增加两个数:a[2i+1]和a[2i]。那么这两个数的中位数的影响其实只有一位。比如[1,3,5,7,9],其中位数是3,现在增加两个数,最多最多使中位数左移1位或者右移1位。…

Educational Codeforces Round 110 Gold Transfer 题解 (C++ only)

题解 首先,因为子节点的cost一定高于其父亲节点。因此显而易见的,我们会优先选择深度更低的节点。于是我们立刻想到要快速的找到深度最浅且仍有剩余黄金的节点。 于是我们很自然的想到二分的方式。以一个深度为9的节点为例,倍增的建立一个其祖先节点的位置:…

Educational Codeforces Round 110 Unstable String 题解 (Java/C++)

题解 首先,我们考量本身就是unstable的串能够拆成多少个字串。对于010101。我们发现,可以拆成6个长度为1的,5个长度为2的,……,以及1个长度为6的unstable子串。因此可得,对于任意长度为n的unstable串,可以有$\frac{n\cdot(n+1)}{2}$种解。…