Codeforces Round 1095 Div.2 做题记录
Codeforces Round 1095 Div.2
| 编号 | CF2226 |
|---|---|
| 赛时解决 | A,B,C |
| 赛后订题 | A,B,C,D |
Solution
A
【+1min】
注意到对于 \(1\) 来说,与其他数字相乘一定是不劣的。
【+2min】
只要 \(1\) 后面有不小于它的数,那么它就能合并。
所以最后只有 \(a_n = 1\) 不能再向后合并了。
因此答案为:
B
【+10min】
把题意改写为以下形式:
那么题目就是满足:
且对于所有 \(i \in [l,r]\),都有 \(a_i = k_ig\)。
为什么不考虑 \(k\) 会不会产生 \(\gcd\)?因为我们有约束:
所以 \(k_\max,k_\min\) 天然互质,所以 \(\gcd\) 不会超过 \(g\)。又因为所有区间内的 \(a_i\) 都包含 \(g\) 这个因数了,所以 \(\gcd = g\).
【+5min】
因为 \(a\) 是一个排列,所以 \(a_i\) 两两互不相同。
而又因为 \(k_\max,k_\min\) 的限制,所以对于 \(i \in [l,r]\),都有 \(k_\min < k_i < k_\max\) 即 \(k_\min + 1 \le k_i \le k_\max - 1\)。而 \(k_\min + 1 < k_\max - 1\),所以不存在额外的 \(k_i\),也就是区间只能包含两个数 \(k_\min g,k_\max g\)。
因此对于所有长度为 \(2\) 的 \(n-1\) 个区间判断下即可。
C
【+5min】
注意到取 \(m = n\),即对整个区间操作总是不劣的。因为我们对于不想变动的 \(a_i\),可以直接取 \(b_i > a_i\),这样取模之后结果不变。
【+15min】
记 \(x \bmod y = z\),那么注意到 \(z\) 的取值范围:
或
【+25min】
考虑二分答案,不难发现答案的值域 \(ans \in [0,n+1]\),考虑如何 check 答案能否达到 \(x\)。
由于我们已经说明过了 \(m = n\) 不劣,所以可以事先对 \(a\) 从小到大排序。
那么从小到大对于每一个数 \(i\),我们分别考虑其取值:
- 如果取 \([0,\lfloor\frac{a_i-1}{2}\rfloor]\),那么后面的 \(a_i\) 的取值区间一定是包含这个区间的,因为后面的 \(a_i\) 更大。
- 如果取 \(a_i\),那么后面的 \(a_i\) 更大,反而有可能取不到了。因此如果 \(a_i < x\) 的话,那么就优先把 \(a_i\) 填进去。
因此先填 \(a_i\),如果 \(a_i\) 已经被填了,那么填 \([0,\lfloor\frac{a_i-1}{2}\rfloor]\) 区间内最小的可以填的就行。
为什么要填最小可填的呢?因为这样可以用指针维护 \(\text{mex}\),这样 \(\text{mex}\) 单调不降,所以便于我们很快找到 \(\text{mex}\) 并填进去。
check 的时间复杂度 \(O(n)\),总时间复杂度 \(O(n \log n)\),可以通过。
D
【+15min】
注意到对于长度为 \(2\) 的区间,如果两个数奇偶性不同,那么可以互换。
但是这并不能改变奇数、偶数内部的相对顺序。不过这告诉我们,这两类数的相对顺序是可以随意调整的。
【+20min】
考虑怎么组内互换(即奇数互换或偶数互换)。
那么考虑用 \(3\) 个数 \(x,y,z\)(如果数字数量超过 \(3\),也能通过上面“相对顺序的调整”转化为这样的形式),其中 \(x,y\) 奇偶性相同,\(z\) 的奇偶性与它们不同。
那么当且仅当 \(z < \min(x,y)\) 或 \(z > \max(x,y)\) 时,\(z\) 会成为 \(x,y,z\) 的 \(\max\) 或 \(\min\),此时这三个数才可以反转,也就交换了 \(x,y\)。
【+30min】
考虑如何实现,直接枚举逆序对并 check 过于复杂了,并且时间上过不了。
考虑枚举 \(x\) 作为逆序对中的后一个数,那么此时 \(z\) 合法的其中一个条件 \(z < \min(x,y) = x\) 就确定了。此时我们直接看如果整个序列存在 \(z\) 满足条件,这个 \(x\) 的所有逆序对都被解决了。
否则,为了让所有可能的 \(y\) 都存在一个 \(z\) 满足条件,我们直接找到前缀最大的 \(y\)。如果整个序列存在 \(z\) 满足条件,这个 \(x\) 的所有逆序对也都被解决了。
至此,我们尽可能解决了以上两种情况,时间复杂度线性。

浙公网安备 33010602011771号