终之篇

0.杂谈

又是计算几何,爬……
最终还是愉快抱灵了/kk

1.简易题解

A

题面见 CF840C。
去除平方因子后相同的数相乘为平方数。所以我们可以把相同的数字归为一组,然后用 dp 或者其他什么奇奇怪怪的东西转移。

B

题面见洛谷 P7058。
可以 \(O(n^3)\) 暴力枚举判断,据说随机数据巨大水能轻松过。

C

题面见 CF674F。
给定一个天数限制 \(d\),考虑答案。此时睡觉人数不超过 \(\min\{n-1,p\}\),而每个睡觉人可能在 \(d\) 天中的某一天喝到酒睡过去,即答案为 \(\sum\limits_{i=0}^{\min\{n-1,p\}}\dbinom nid^i\),每种情况唯一对应了一种放酒的位置。容易构造证明这就是上界。
所以暴力预处理组合数就完了,由于模数非质数所以可以先约分组合数再自然溢出。

2.集训队作业选讲

1

题面见 AT4994。
曼哈顿距离只有四种可能的形式,我们可以考虑将它们分开建图。
源点连红球,蓝球连汇点,新建四个点表示四种情况,然后红球和蓝球向这四个点连边,跑最大费用流。

2

题面见 AT4928。
题面比较复杂,建议多读几遍理解细节,然后一步步分析。
红蓝是对称的,接下来我们只考虑开头是红的情况,那么显然不能有大于等于两个连续的蓝。
考虑第一段连续的红(设它的长度为 \(d\)),发现环上不能有长度为偶数的红段,而且每一段的长度不超过 \(d+1\)
不难发现,对于 \(S\) 中一个蓝点,它的上一个位置可以由奇偶性确定(红段一定是奇数长度)。所以对于每个蓝边旁边的红边,总存在一个点只能到达它。
现在我们将要得出一个重要性质:对于 \(S\) 中除开头外的每段红,如果长度是奇数,那么环上的红段长度一定不超过它,否则就走不到对面了。
尝试思考一下,发现这些条件已经是充分的了,所以考虑如何统计。
这个环必定由若干段“一段红+蓝”拼成,我们可以知道它的长度限制,枚举最后一段的长度在链上 dp 即可。

posted @ 2021-05-10 22:05  ajthreac  阅读(120)  评论(0编辑  收藏  举报