Codeforces Round #755 (Div. 2) ABCDE 题解 (Java/C++)

A. Mathematical Addition

题解

显然$x=u^2,\ y=-v^2$时,满足条件。

代码

Java

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

C++

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

B. Coloring Rectangles

题解

总面积除以3即可。如果不能被3整除,就加一。因为如果余2,自然需要一个蓝块。如果余1,那么需要和面积为3的拼接起来形成一个面积为4的块,也需要增加一个蓝块。

代码

Java

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

C++

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

C. Two Arrays

题解

显然从小到大考量每个数的出现次数即可,然后尽可能少的增加1即可。

代码

Java

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

C++

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

D. Guess the Permutation

是一道很不错的二分搜索的题目。其巧妙之处在于,对于某一个查询结果,如果$\frac {x \cdot (x-1)} 2=result$的x有整数解,那么查询的区间大概率是不会横跨j的。

Codeforces Round #755 (Div. 2) Guess the Permutation 题解 (Java/C++)
题解我们考量查询[x, n]的图像。也就是说,随着x的变化,查询? x n的结果的变化。
点击上面连接查看详细题解

E. Game with Stones

我这里使用的线段树+二分搜索实现的,似乎官方题解有更巧妙的解法。但我这么做也可以通过,就是比较容易TLE。

Codeforces Round #755 (Div. 2) Game with Stones 题解 (Java/C++)
题解首先我们注意到对于第一堆石头,一定需要和第二堆石头一起操作。而当第一堆石头被拿完了之后,同理第二堆石头一定需要和第三堆石头一起操作。以此类推,我们发现,操作一定是从左到右依次操作。
点击上面连接查看详细题解
展示评论