CodeTON Round 1(div1+div2) VP 记录

晚上要回宿舍睡觉,只能第二天来 VP。

为什么前四道题都是结论啊

A. Good Pairs

显然要让所有的 \(a_k\) 的值在 \(a_i\)\(a_j\) 之间才符合要求,输出最大值和最小值的位置即可。

B. Subtract Operation

手模一下发现剩下的哪个数最终减去的是最后一个数,所以直接找一下有没有 \(i,j\) 满足 \(a_i + K = a_j\) 即可。可以枚举一个数另一个 lower_bound

C. Make Equal With Mod

会发现很多性质。

如果 \(0,1\) 同时存在,一定无解。

如果不存在 \(1\) ,一定有解,构造方法是让 \(x\) 依次等于所有数中最大的那个。

如果存在 \(1\) 不存在 \(0\),判断一下有没有两个数满足 \(a_i + 1 = a_j\),有的话无解,否则有解

D. K-good

首先不难发现,当 \(n\) 是奇数且 \(n \not = 1\) 时,\(k\) 可以为 \(2\)然而这并没有什么用

因为 \(k\) 个数的余数各不相同,所以要满足

\[n - \frac{k(k+1)}{2} \equiv 0 \pmod k [\frac{k(k+1)}{2} \le n] \]

好像也没有什么用,不过能看出来答案 \(k\)\(n\) 的一个因子

你想起来如果它时奇数可以放一个 \(2\),那如果它是偶数的话,就让 \(k \times 2, n \div 2\) ,知道 \(n\) 为奇数的时候,就回到了一开始的情况。

但是你发现,有时候 \(k\) 是这个奇数也是可以的。

所以,设 \(n = 2^ka\),那么答案就是 \(\min(2^{k+1}, a)\)

为什么取 \(\min\),较小值一定是 \(\le \sqrt n\) 的,带入上面的条件式,得到

\[\sqrt n \times (\sqrt n + 1) = n + \sqrt n \le 2n \]

而较大值可能不合法。

posted @ 2022-03-25 21:39  Suzt_ilymtics  阅读(53)  评论(0编辑  收藏  举报