CSP-S 2024 第五次

建议倒序开题

A

枚举 \(A,D\) 灯的亮度 \(A,D\),设 \(B,C\) 灯的亮度为 \(B,C\),则可以得到不等式组:

\[\begin{aligned} &B/2+C/2\ge a-A-D/4\\ &B/2+C/2\ge d-D-A/4\\ &B+C/4\ge b-A/2-D/2\\ &B/4+C\ge c-A/2-D/2 \end{aligned} \]

\(B=4u+x,C=4v+y\),枚举 \(x,y\),可得:

\[\begin{aligned} &2u+2v\ge a-A-D/4-x/2-y/2\\ &2u+2v\ge d-D-A/4-x/2-y/2\\ &4u+v\ge b-A/2-D/2-x\\ &u+4v\ge c-A/2-D/2-y \end{aligned} \]

则只需要求满足下面两个式子的前提下 \(u+v\) 的最小值,再与上面两个式子取 \(max\) 即可。

发现满足下面两个式子的 \(u,v\) 是两条直线与坐标轴围成的一个区域,而 \(u+v\) 的最小值就在这两条直线的交点处取。

注意交点不在第一象限时 \(u+v\) 最小值在坐标轴上取,需要特判。

B

先拆位把值域缩小到 \([0,1]\)

然后设 \(f_{u,0/1,0/1/2,0/1}\) 表示考虑 \(u\) 子树,\(u\) 点的蚂蚁是/否向上爬,\(u\) 点处有 0 只 / 1 只 / 超过 1 只蚂蚁,\(u\) 点上的蚂蚁权值异或和为 0/1 时的答案。

C

考虑先让切换产生的权值最大(构造 \(c\) 个 B,一个 A 交替出现的串),枚举 \(c\) 个 B,一个 A 交替出现的次数 \(i\)

考虑剩下的 A,首先把一个 A 放在开头就可以产生 1 的权值,其他的 A 随便塞到一个 A 段中,每 \(a\) 个 A 产生 1 的权值。

考虑剩下的 B,首先把一个 B 放在最后就可以产生 1 的权值,然后把每个 B 段的长度补到 \(b\) 的倍数加一使其产生 1 的权值,

最后把剩下的 B 随便塞到一个 B 段中,每 \(b\) 个 B 产生 1 的权值。

D

归纳可证这个函数是个只分三段的分段函数,直接在线段树上合并即可。

posted @ 2024-09-27 16:09  5k_sync_closer  阅读(69)  评论(1编辑  收藏  举报