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
归纳可证这个函数是个只分三段的分段函数,直接在线段树上合并即可。