Codeforces Round 561 (Div. 2)

5/6

题目链接


A

读题能力不行


B

构造的太垃圾了,都没check正确性就提交。


C

数学太菜了,公示推错了。

考虑 $|x-y|$ 和 $|x + y|$
用 $-x$ 替换掉 $x$,那么相当于 $|x-y|$ 和 $|x + y|$ 互换,没有任何影响,那么就可以将所有的负数转换到正数上。

考虑 $x < y$,合法的条件即为:$x \le y - x$。


D

题意

存在一个序列 $x$ 满足,$x_i = x_{i-1} + x_{x-2} + …+ x_1 + r_i$ $(1\le r_i \le m)$,现给出 $x_1,x_n,m$,构造出这个合法的序列,且项数不超过 $50$,有 $q$ 次询问。
$(q\le 10^3,x_1,x_n,m\le 10^{14})$

题解

  • $x_n$ 一定是在每次 $+[1,m]$
  • 暴力枚举 $n$ 是第几项。
  • 一定存在每次 $+[1,m]$ 的合法序列。
  • 每项的 $r_i$ 是不断的 $*2$ 增长。
  • 从小到大枚举枚一项的贡献,尽可能的减去,但要保证当前项后面的贡献合法性。

E

只要任意一天的下标的集合不是其他任意一天集合的补集即可。