Codeforces Round #648 (Div. 2)(A-F)简要题解

A. Matrix Game

==奇偶性博弈==。
显然每次选一个格子,可用的行和列都会减1,所以只需看最初可用的行和列的最小值的奇偶性即可。

B. Trouble Sort

==简单思维==。
观察一下可得只要一个序列有两种类型就可以得到任何排列,若只有一种类型判断一下序列是否非递减即可。

C. Rotation Matching

==暴力==。
因为向左移动次等于向右移动次,且最多移动次,所以我们只需要找到移动向左(右)移动多少次时有最大答案。我们只需记录的位置,然后计算中与相同数字的位置差,它代表序列移动的次数。最后取最大值即可。

D. Solve The Maze

==贪心==。
考虑堵住的四周肯定是最优的,且当周围有时显然无解,所以可以将周围都变成不可走的路径,然后从一下能否走到即可。

E. Maximum Subsequence Value

==贪心==。
时最优的,由==鸽巢原理==可得,当时肯定能选出的子集满足同样条件。

举个例子:,被分成两个部分,中至少一个在这个集合里。

被分成两个部分,中至少有一个在3这个集合里。

F. Swaps Again

==思维==。
无论怎么交换,最开始两个相对的数的位置仍然保持相对不变,实际位置可以变。所以只需对两个数组记录一下序数对,然后排序看是否相等即可。