CF2029

CF2029

赛时只打了 ABCE,D 没调出来,还是太菜了

A

一眼秒掉答案为 max (0LL, r / k - l + 1)

record

B

注意到只需维护 0 和 1 的个数即可

record

C

先枚举 $r$,考虑从哪里开始 skip,显然 skip 后的分数越大越不劣。

先求出从每个位置为 $r$,最大的分数,接着问题转化为对于 $i\in [2, n]$,已知到 $i$ 时 rating 为 x,求最终 rating。

这样还是会超时,继续使用上面的性质:对于同一个位置,分数越大越不劣。于是可以同时维护所有,每到一个位置取一下 $\max$ 即可。

record

D

显然对于每一个点 $u$,如果度数 >= 2,可以随便取出两个它能到的点 $x$ $y$,然后执行 $u$ $x$ $y$。

不难发现,每次取出度数最大的点进行次操作,最终所有点的度数都 $\leq 1$,此时的图由一些单点和长度为 $2$ 的链构成。

如果只有单点那么可以直接输出答案,如果有链,每次随便断一条边,再找一个新的 点/链 加进来即可。

record

E

观察到偶数总有因数 $2$,所以小的偶数一定能转移到大的偶数,那么奇数呢?

观察到奇数不可能有偶数因子,所以奇数进行一步操作后会变回偶数,显然变的偶数越小越优,因为这样可以转移到更多的偶数。

所以说对于每一个奇数 $a_i$,如果选择的 $x$ 不是 $a_i$,

我们可以考虑先将 $x$ 变为偶数(如果它是奇数),然后再进行若干次 $+2$ 得到另一个偶数,最后再一次操作变为奇数。

这就启发我们对于每个奇数 $y$,预处理最大能一步到它的偶数。

对于某种奇数,没有偶数能一步到它,那么 $x$ 只能设为这个奇数,然后枚举一下因数看看 $x$ 能到的最小偶数是谁。

如果有超过两个这种奇数,答案显然为 $-1$。否则答案可以为 $2$。

record

posted @ 2024-11-10 10:00  Xy_top  阅读(26)  评论(0编辑  收藏  举报