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