nene专题

Codeforces Round 939 (Div. 2) D. Nene and the Mex Operator 题解 二进制枚举+递归

Nene and the Mex Operator 题目描述 Nene给了你一个长度为 n n n 的整数数组 a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1​,a2​,…,an​ 。 你可以执行以下操作不超过 5 ⋅ 1 0 5 5\cdot 10^5 5⋅105 次(可能为零): 选择两个整数 l l l 和 r r r ,使得 1

D. Nene and the Mex Operator - dfs + 位运算枚举

题面 分析 将一段区间[l, r]变成最大,可以遵循以下规则,先对第一个数进行操作,如果他是0, 那么会变成1,所以不进行操作,如果不是0,就要进行操作,让它变成0,只有这样才能让他后面的元素得到更大的结果,所以以此类推,可以让整个区间变成0,1,2,3,…r - l,对这种区间再次进行操作,就可以变成r - l + 1, r - l + 1, …, r - l + 1。 可以枚举所有情况,去

D. Nene and the Mex Operator

解题思路 若选定一个区间,则可以构造成值全为构造方如下:先将区间全变为0(若区间有0且不全为0两次(全变为一个值后再全变为0),若没有0则一次,若已经全为0则0次)保留r为0,依次递归构造,每次保留左端值则构造出区间值为,再一次变为全例:0 0 0 0->1 0 0 0->2 2 0 0->2 0 0 0-> 2 1 0 0->3 3 3 0->3 0 0 0->……->3 2 1 0-