CF 1339 题解

CF 1339 题解

A Filling Diamonds

\(f_i\) 表示 \(n=i\) 时的答案.

若最左边两个格子竖着放一个菱形, 这意味着后面都只能横着放菱形铺满, 仅有 \(1\) 种方案;

若最左边两个格子横着放, 剩下的部分会构成一个子问题. 有 \(f_{i-1}\) 种方案.

综上, \(f_i=f_{i-1}+1,f_1=1\), 则有 \(f_i=i.\)

B Sorted Adjacent Differences

考虑把原序列排序后折半, 穿插起来.

若排序后序列为 \(a_1,a_2,\dots a_n\),

则考虑构造 \(a_{\lceil\frac{n}{2}\rceil},a_{\lceil\frac{n}{2}\rceil+1},a_{\lceil\frac{n}{2}\rceil-1},a_{\lceil\frac{n}{2}\rceil+2},a_{\lceil\frac{n}{2}\rceil-2},\dots,a_{n},a_1\), 正确性显然.

C Powered Addition

发现各个数字之间操作独立, 贡献独立, 因此考虑贪心, 把每个数字抬升到它对应的前缀最大值一定最优.

D Edge Weight Assignment

首先考虑最小化.

钦定任意一个非叶节点为根.

答案为 \(1\) 当且仅当所有叶节点高度层奇偶一致.

答案上界为 \(3\), 下面是构造性证明:

考虑将奇数层叶节点的父边赋值为 \(1\) , 偶数层赋值为 \(2\) , 其余赋值为 \(3\). 这不难发现是一种合法的构造.

注意到当叶子奇偶不同时, 无法构造使得答案为 \(2\), 因为 两个数异或为 \(0\) 意味着这两个数相等.

接下来考虑上界.

若多个叶节点连接一个父亲, 则他们的父边权一致.

由于值域无限大, 总能存在其他边权互不相同的构造.

E Perfect Triples

一道找规律题.

\[1,2,3,\\4,8,12,5,10,15,6,11,13,7,9,14, \\16,32,48,17,34,51,18,35,49,19,33,50,20,40,60,21,42,63,22,43,61,23,41,62,24,44,52,⋯ \]

注意到第一行的数填满 \(1,2,3\) , 前两行填满 \([1,15]\), 前三行填满了 \([1,63]\).

但是看不出来进一步规律, 考虑把 \(a,b,c\) 分别拿出来.

\(a\) 的表如下:

\[1,4,5,6,7,16,17,18,19,20,21,22,23,24,\dots \]

发现只剩下了每个 \([2^{2k},2^{2k+1}-1],k\in\mathbb{N}\) 中的数.

\(b\) 的表如下:

\[2,8,10,11,9,32,34,18,\dots \]

没啥规律, 我们把一行里面的 \(b\) 单独拎出来, 并且和第一个 \(b\) 做差量处理, 并用二进制表示:

\[\textcolor{red}{00}\textcolor{cyan}{00}00\\ \textcolor{red}{00}\textcolor{cyan}{00}10\\ \textcolor{red}{00}\textcolor{cyan}{00}11\\ \textcolor{red}{00}\textcolor{cyan}{00}01\\ \textcolor{red}{00}\textcolor{cyan}{10}00\\ \textcolor{red}{00}\textcolor{cyan}{10}10\\ \textcolor{red}{00}\textcolor{cyan}{10}11\\ \textcolor{red}{00}\textcolor{cyan}{10}01\\ \textcolor{red}{00}\textcolor{cyan}{11}00\\ \textcolor{red}{00}\textcolor{cyan}{11}10\\ \textcolor{red}{00}\textcolor{cyan}{11}11\\ \textcolor{red}{00}\textcolor{cyan}{11}01\\ \textcolor{red}{00}\textcolor{cyan}{01}00\\ \textcolor{red}{00}\textcolor{cyan}{01}10\\ \textcolor{red}{00}\textcolor{cyan}{01}11\\ \textcolor{red}{00}\textcolor{cyan}{01}01\\ \]

从低向高每两位都有相同的循环节, 去找到周期就可以了,

\(c\) 的规律不需要寻找, 使用 \(a \oplus b\) 即可.

posted @ 2024-11-06 09:42  snowycat1234  阅读(145)  评论(0)    收藏  举报