Codeforces Round #726 ABCD 题解 (Java/C++)
A. Arithmetic Array 题解 对于和小于n的,则我们只需要补1个数字使得和等于n。 对于和大于n的,那么我们通过补充若干个0,使得n等于所有数字之和。 代码 Java C++…
A. Arithmetic Array 题解 对于和小于n的,则我们只需要补1个数字使得和等于n。 对于和大于n的,那么我们通过补充若干个0,使得n等于所有数字之和。 代码 Java C++…
题解 我们将数字分成三类:奇数、不包括$2^n$在内的偶数,以及$2^n$。于是,经过一步操作我们发现三类数字会有如下转化:…
A. Stone Game 题解 首先我们找到最大值和最小值的位置。接着有四种可能:一直删左边、一直删右边、从左往右删最大值且从右往左删最小值、从右往左删最大值且从左往右删最小值。 代码 Java C++…
A. Omkar and Bad Story 题解 显然,如果数组中存在任意一个小于0的负数。那么通过将这个数作为被减数,数组可以被无限增长。 但是如果没有负数,那么从0-100的所有数一定能够覆盖题目中所有的输入。 代码 Java…
题解 有两个结论: 对于图上任意一个点,假设这个点的值为x。则从这个点出发一定能找到一条路径使这个路径上的值为:[x,x-1,x-2,...,2,1,0]。 根据题目中第二个条件,这个结论是显然的。…
题解 首先我们可以注意到,对于b[i+1],相比b[i]来说,其实只增加两个数:a[2i+1]和a[2i]。那么这两个数的中位数的影响其实只有一位。比如[1,3,5,7,9],其中位数是3,现在增加两个数,最多最多使中位数左移1位或者右移1位。…
A. Fair Playoff 题解 直接看看两组人里的胜者是不是排序后最大的两个即可。 代码 Java C++…
题解 首先,因为子节点的cost一定高于其父亲节点。因此显而易见的,我们会优先选择深度更低的节点。于是我们立刻想到要快速的找到深度最浅且仍有剩余黄金的节点。 于是我们很自然的想到二分的方式。以一个深度为9的节点为例,倍增的建立一个其祖先节点的位置:…