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

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

A. Matrix Game

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

B. Trouble Sort

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

C. Rotation Matching

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

D. Solve The Maze

贪心
考虑堵住 B B 的四周肯定是最优的,且当 B B 周围有 G G 时显然无解,所以可以将 B B 周围都变成不可走的路径,然后从 ( n , m )   d f s (n,m)\ dfs 一下能否走到 G G 即可。

E. Maximum Subsequence Value

贪心
k 3 k\leq 3 时最优的,由鸽巢原理可得,当 k > 3 k>3 时肯定能选出 s i z e = 3 size=3 的子集满足同样条件。

举个例子: n = 4 , c n t = n 2 = 2 n=4,cnt=n-2=2 ,被分成 3 , 1 3,1 两个部分, c n t = 2 cnt=2 中至少一个在 3 3 这个集合里。

n = 5 , c n t = n 2 = 3 n=5,cnt=n-2=3 被分成 3 , 2 3,2 两个部分, c n t = 3 cnt=3 中至少有一个在3这个集合里。

F. Swaps Again

思维
无论怎么交换,最开始两个相对的数的位置 p o s 1 = i , p o s 2 = n + 1 i pos_1=i,pos_2=n+1-i 仍然保持相对不变,实际位置可以变。 e p : n = 5 , ( 1 , 5 ) ( 2 , 4 ) ep:n=5,(1,5)可以变成(2,4) 所以只需对两个数组记录一下序数对,然后排序看是否相等即可。

猜你喜欢

转载自blog.csdn.net/weixin_45750972/article/details/106622072