Codeforces Round #735 (Div. 2) 题解复读

打炸了/kk

A Cherry

题意简述:给定一个序列 a a a,求一个区间 $[L,R] $ 使得这个区间的最大值最小值相乘最大。

容易发现,当我们确定了一个区间 [ L , L + 1 ] [L,L+1] [L,L+1] 时无论向左还是向右扩展答案都不优于这个区间,换句话说最优解一定是 [ i , i + 1 ] ( i < n ) [i,i+1](i < n) [i,i+1](i<n),直接扫一遍,复杂度 O ( n ) O(n) O(n)

B Cobb

题意简述:给定一个序列 a a a,求一组 i , j i,j i,j 使得 i × j − k × ( a i ∣ a j ) i \times j-k \times (a_i | a_j) i×jk×(aiaj) 最大。

非正解做法并且还不会证明:对于每个 i i i,其最优解一定在 [ i , i + k ] [i,i+k] [i,i+k] 中,复杂度 O ( n k ) O(nk) O(nk),由于 k ≤ 100 k\le 100 k100,可以通过,但是我真的不会证明/kk

正解做法:我不太懂,大受震撼。是 O ( k 2 ) O(k^2) O(k2) 并且出题人的题解指出他们故意放了 O ( n k ) O(nk) O(nk)

C Mikasa

题意简述:给定 n , m n,m n,m,求 m e x ( n xor ⁡ i ) ( i ≤ m ) mex (n \operatorname{xor} i)(i\le m) mex(nxori)(im)

m < n m < n m<n 时显然不能构造出 0 0 0 n xor ⁡ n = 0 n \operatorname{xor} n = 0 nxorn=0)。

m ≥ n m\geq n mn 时,我们知道一个傻逼的性质是如果 a xor ⁡ b = c a\operatorname{xor} b=c axorb=c 那么 a xor ⁡ c = b a\operatorname{xor}c=b axorc=b,于是瞎贪心就好了其实是我懒得写

D Diane

简单构造,由于这场风评不太好我就烂尾了(

おすすめ

転載: blog.csdn.net/cryozwq/article/details/119235018