CF 1339 题解

CF 1339 题解

A Filling Diamonds

fi 表示 n=i 时的答案.

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

若最左边两个格子横着放, 剩下的部分会构成一个子问题. 有 fi1 种方案.

综上, fi=fi1+1,f1=1, 则有 fi=i.

B Sorted Adjacent Differences

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

若排序后序列为 a1,a2,an,

则考虑构造 an2,an2+1,an21,an2+2,an22,,an,a1, 正确性显然.

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,

发现只剩下了每个 [22k,22k+11],kN 中的数.

b 的表如下:

2,8,10,11,9,32,34,18,

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

000000000010000011000001001000001010001011001001001100001110001111001101000100000110000111000101

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

c 的规律不需要寻找, 使用 ab 即可.

posted @   snowycat1234  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示