记录大部分Hard题,和部分难度较大的Medium
548C 容斥原理,分类计数 注意到 特别小,可以分类讨论。需要解决一个弱化的问题:
个点
条边的连通图个数,通过经典的容斥解决。以
为例,首先按照
是否连接分类(若连接可以转化为
的情况)。否则接下来按照删除
后的连通块个数讨论即可。
549B 博弈,状压DP 注意到帽子的数量特别少,于是可以状压。 分别表示是否翻开以及是否有硬币。可以预处理所有的合法状态。注意到 DP 的状态值只需要记录收集到的硬币个数即可。
550B 杨辉三角,卢卡斯定理推论 首先得到一些性质:每次放置的检验器 均相同,且刚好加
,
的一定被
整除,而
的被
除余
。注意到
,下标变换为
,即是模
意义下的杨辉三角。利用经典的卢卡斯定理推论:
。
550C 矩阵快速幂 注意到使每个位置变为相同的总变换次数 (以及总代价
)是固定的,之后根据
我们可以求出
表示最多多余的周期。
表示当前还差
次,
次变化的位置个数,转移
次即可。容易发现不会重复计数,或者出现不合法的情况。
551C Meet-in-the-middle,矩阵树定理,容斥 分解问题,不妨枚举恰有 个真甜水果,于是要解决:1.选取
个甜水果,且其甜度不超过
,
解决。2.有
个真甜水果,求生成树个数,矩阵树定理+容斥(注意到容易求出“至多”有..个方案)
552C DP,trick 直接令 表示
中的质数之于
的答案,枚举
的选择个数即可。然而只需注意到,当
时,
至多只有一个质因子,二分质数表即可。复杂度比较玄学...
564C DP,异或性质 考虑到:如果存在一个 位变量没有任何限制,那么异或和的结果是等概率的。于是枚举第一次存在一个限制的位置,根据
这一位的奇偶性,DP 即可