A. 构造 喵~

B. 用 map 统计不冷门的副本数量,然后拿 减喵~

C. 分别算出两个数的所有因数,乘起来去重,再用快速幂硬算喵~

D. 区间按左端点排序,从左到右枚举 ,令当前区间的 ,跑一个滑动窗口,把右端点扔堆里维护当前区间有多少个区间和它相交喵~最后取最大值就可以了喵~

E. 首先 一定是 的倍数喵~只有两类方案,一种是样例里面的 L 型(每一对可上下翻转,黑白可互换),另一种就是形如

111000
000111

这样的喵~各自算出要换多少个数(第一种中间格子只要上下不同就不用换),取最小值就是答案了喵~

F. 发现只要某列两行之间没有不能走的点,从一行进从另一行出有且只有一种走法喵~

首先对不能走的点排序喵~对于每一个不能走的点,维护从左边来走到这个点上方格子多少种方案,走到下方格子多少种方案喵~然后从左到右 DP 喵~两列之间根据两列相邻/不相邻有不同的转移公式喵~这些公式都可以用快速幂算喵~

注意初始化 DP 和计算最终答案要根据第一个/最后一个不能走的点是否在第一列/最后一列分类讨论喵~先这样再那样然后就做出来了喵~