CF1537简要题解

\(\text{Problem A}:\)Arithmetic Array

\(\text{Solution}:\)

即让 \(\sum b_{i}=n\)。故当初始的 \(\sum b_{i}<n\) 时,答案为 \(1\);否则为 \(\sum b_{i}-n\)

\(\text{Code}:\)Link


\(\text{Problem B}:\)Bad Boy

\(\text{Solution}:\)

显然把两个物体放到主对角线或副对角线的两端是最优的。可以发现这两种情况等价,随便输出一种即可。

\(\text{Code}:\)Link


\(\text{Problem C}:\)Challenging Cliffs

\(\text{Solution}:\)

\(h_{i}\) 排序后就可以找到最小的绝对值之差。然后找到这个位置 \(i\),可以把序列分为两个连续上升段。这样至少\(n-2\) 个位置满足 \(h_{i}\leq h_{i+1}\),是最优的。

\(\text{Code}:\)Link


\(\text{Problem D}:\)Deleting Divisors

\(\text{Solution}:\)

显然最终状态是 \(x\) 为质数或 \(x=1\)。下面对 \(x\) 进行分类讨论:

  • \(x\) 为奇数且不为质数时,能且仅能在一步内能变为偶数。故只需考虑偶数的情况。

  • \(x\) 为偶数且不能被表示为 \(2\) 的整数次幂时,必定存在一个奇质数因子,故先手可以将 \(x\) 变为奇数。又因为 \(x\) 从奇数变为偶数一定不能被表示为 \(2\) 的整数次幂(因为 \(k\mid x,k\mid x-k\)),故最后一定会进入 \(x\) 是奇质数或 \(1\) 的状态。这证明了这种情况下先手必胜。那么 \(x\) 是奇数时先手必败。

  • \(x\) 为偶数且是 \(2\) 的整数次幂时,先手若不将其变为 \(\frac{x}{2}\) 则进入第二种状态,故先手只会做 \(x\rightarrow \frac{x}{2}\) 的操作。那么对于 \(x=2^{k}\),判断 \(k\) 的奇偶性即可。

\(\text{Code}:\)Link


\(\text{Problem E}:\)Erase and Extend

\(\text{Solution}:\)

不难发现最优答案一定是选择一段前缀,然后连续复制。

Easy Version 只需暴力对每个前缀 Check 即可通过。

考虑当前最优前缀的长度为 \(l\),只需比较 \(s_{i}\)\(s_{i\%l}\) 的大小关系即可。这相当于在更新最后序列的第 \(i\) 个位置的字符。这样可以通过 Hard Version。

\(\text{Code}:\)Link


\(\text{Problem F}:\)Figure Fixing

\(\text{Solution}:\)

首先若 \(\sum v_{i}\)\(\sum t_{i}\) 奇偶性不同显然无解。

若图无环,那么从度为 \(1\) 的点开始处理的操作是唯一的。

若图有奇环,那么可以给环上一点加 \(2\),同时其他点权值不变。所以当图有奇环时,一定有解。

而剩下的情况(包括无环图)一定是二分图。一次修改左部点和右部点的权值之差不变,利用这个性质 Check 即可。

\(\text{Code}:\)Link

CF1537简要题解

上一篇:第三节 隧道技术之socket隧道


下一篇:django post 与get请求理解