CF568 合集
云落碎碎念
- 题面翻译取自 luogu,本蒟蒻也会安置原题链接
- 不保证文章中不出现“显然”或者“注意到”,可能会出现“易证”
- 有写错的地方欢迎各位神犇指正
前言
状态好差,不想写代码,随一套 CF 玩玩(结果还随到 Div 1 了)
CF568A
这个我会,暴力打表即可
CF568B
不是很懂什么是序、什么是集合关系,但是并不妨碍我们做题
考虑等价关系与所求的差异在于存在孤立点,而剩下的非孤立点会构成若干个团
所以我们直接枚举孤立点个数,先组合数挑以下孤立点是哪些,剩下的就是经典的集合划分问题
Bell 数用第二类斯特林数预处理一下就好
CF568C
据说是 2-SAT 模板题……
CF568D
感觉很像我出过的一道题
你发现用 \(k \le 5\) 个点去覆盖 \(n \le 10^5\) 条直线这一条件相当苛刻。具体地,根据抽屉原理,如果方案合法,则一定存在至少一个点位于至少 \(\frac{n}{k}\) 条直线上的交点
显然这种交点的数目不会很多,直接随机若干次,找出这样的点,递归进子问题即可
CF568E
DP + DS,好吃爱吃
考虑 LIS 的结构,依旧是 \(f_i\) 表示前缀 \([1,i]\) 的答案
转移也差不多是 \(f_i \gets f_j + w(j,i)\),只不过现在这个里面带了通配符
用前缀差分的形式把贡献区间带上通配符的最大贡献表示出来,是一个序列下标上和值域上取 \(\min\) 的形式
把 \(\min\) 拆开,转移时加一条限制,再算上 \(j<i\) 和 \(a_j<a_i\),三维偏序优化转移,CDQ 简单维护即可
后记
想出互测题
完结撒花!

浙公网安备 33010602011771号