终之篇
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 即可。