Codeforces Round #726 ABCD 题解 (Java/C++)

A. Arithmetic Array 题解 对于和小于n的,则我们只需要补1个数字使得和等于n。 对于和大于n的,那么我们通过补充若干个0,使得n等于所有数字之和。 代码 Java C++…

Codeforces Round #725 (Div. 3) ABCDEFG 题解 (Java/C++)

A. Stone Game 题解 首先我们找到最大值和最小值的位置。接着有四种可能:一直删左边、一直删右边、从左往右删最大值且从右往左删最小值、从右往左删最大值且从左往右删最小值。 代码 Java C++…

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的节点为例,倍增的建立一个其祖先节点的位置:…