Codeforces Round #751 (Div. 2) ABCD 题解 (Java/C++)

A. Two Subsequences

题解

显然a字符串只会有一个字母。我们只需要找到原字符串中最小的字母即可。

代码

Java

Submission #133520784 - Codeforces
Codeforces. Programming competitions and contests, programming community

C++

Submission #133521057 - Codeforces
Codeforces. Programming competitions and contests, programming community

B. Divine Array

题解

暴力求解直到所有的数不再改变即可。因为值发生变化的原因是:在上一次变化中,有两个数有同样的数目。

于是显然的,这种操作最多进行2000次之后,所有的数字都会变成同样的数字。

代码

Java

Submission #133526118 - Codeforces
Codeforces. Programming competitions and contests, programming community

C++

Submission #133526518 - Codeforces
Codeforces. Programming competitions and contests, programming community

C. Array Elimination

题解

显然,如果要删除某一位的1,那么选择的k个数在那一位上都全是1。同时,每次操作之后,这一位上的所有1都会变成0。因此k必然能整除这一位为1的所有数的数目。

因此,统计每一位为1的数目,取最大公约数即可。

代码

Java

Submission #133530322 - Codeforces
Codeforces. Programming competitions and contests, programming community

C++

Submission #133530619 - Codeforces
Codeforces. Programming competitions and contests, programming community

D. Frog Traveler

这个问题的关键点是把滑落转化为跳跃操作的一部分。

Codeforces Round #751 (Div. 2) Frog Traveler 题解 (Java/C++)
题解首先,因为到达0之后,就不会再下滑。所以,我们把下滑考虑成跳跃能力的一部分。于是我们重新定义了一次跳跃得行为,把跳跃后下滑,变成了先下滑后跳跃。
点击上面链接查看详细题解
展示评论