25-暑期-来追梦noip-卷1
整除运算-进阶
由于我们的选择约束只与上一个有关,所以可以设定状态:\(f_{ij}\),然后我们直接暴力转移,考虑优化,可以视作将前面的所有都转移过来,然后删掉它的倍数的 dp 值
芒果点兵
这个题暴力拆贡献,然后无脑 \(O(n^3)\) 转移即可,代码难度有点
抢红包
考虑暴力,枚举秒数,干扰几次,上一次从哪里转移,这样可以得到一个暴力的 dp,考虑优化,可以用单调队列优化,用双指针加点。
齐国芒果的矩阵
对于条件进行分析:
第三个条件和第二个条件就是每行每列的总和都是 2,然后我们发现这个可以视作为一个邻接矩阵,那么总和为 2 的条件就是形成一个环,对于邻接矩阵中有 2 的情况就是有二元环,对于对称轴上为 0 就是没有自环,那么题目就变成了圆排列
考虑 n 个点如何从 n - 1 个点转移
情况1、新的点直接和之前的 n − 1 个点之中某个点形成二元环,此时有 n - 1 种情况,剩余的交给 \(f_{n-2}\),答案为 \(f_{n-2}(n-1)\)
情况2、将一条边加入环,有 n - 1 种情况,剩余的交给 \(f_{n-1}\),答案为 \(f_{n-1}(n-1)\)
存在重复,假设一个 a 和一个 b 分别在同一个位置,那么这样存在同构,除掉这两个点,有 n-3 个点,可以自由排列,有 \(f_{n-3}\) 种,重复的为 \(\frac{(n-1)*(n-2)*f_{n-3}}{2}\)