[CodeForces] Ozon Tech Challenge 2020

A.Kuroni and the Gifts

题意:两个长度为\(n\)的数列,每个数字都不相同,求一种排列方式,使\(a_i+b_i\)和均不相等。
题解:因为每一个\(a_i\)\(b_i\)都不相同,我们可以对于\(a\)\(b\)序列排个序,那么显然\(a_{i-1} + b_{i-1} < a_i + b_i\),从而也就保证了\(a_i+b_i\)和均不相等。

B.Kuroni and Simple Strings

题意:括号序列\(S\), 每次可以删去\((), (()), ((()))\)这样的序列(位置不一定连续), 直到不能删为止, 问最少删几次
题解:贪心, 每次操作从左边找一个左括号, 然后右边找个右括号, 然后左边再找, 右边再找, 直到指针移不动为止,。
一次操作结束, 可以证明这样是最优的, 因为一对括号越早删除越好, 越分散两边越好。

C.Kuroni and Impossible Calculation

题意:求\(\prod_{1 \leq i < j \leq n}|a_i - a_j|\) \(mod\) \(m\)
\(n \leq 2*10^5\) \(m \leq 10^3\)
题解:从数据范围来看,\(n \leq 2*10^5\)\(m \leq 10^3\),发现必有\(a_i\) \(mod\) \(m = a_j\) \(mod\) \(m\)(容斥原理)
那么如果\(m < n\)答案必定为0, 否则我们可以直接\(n^2\)(实际上是\(m^2\))暴力就行。

D. Kuroni and the Celebration

题意:交互题,你可以询问\(\lfloor \frac{n}{2} \rfloor\)次任意两点的\(lca\),求\(rt\)
题解:

猜你喜欢

转载自www.cnblogs.com/Hock/p/12424129.html