![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
文章平均质量分 53
拿不到名字的拓拓
这个人很懒,并没有什么简介。
展开
-
CodeForces - 1271D
很多时候我们会为带有 gcd\gcdgcd 的和式的处理而发愁,因为 gcd\gcdgcd 实在不好处理,于是我们一般会退而求其次去枚举 gcd\gcdgcd 来求解问题。然而,找到所有最大公约数为给定值的数对是一件非常困难的事,这件事情往往会成为卡住我们思路的关键,况且大多数时候题目的数据范围是不允许我们枚举数对的。 莫比乌斯反演是一个处理带有 gcd\gcdgcd 的和式的常用套路,他允许你把枚举最大公约数转化为枚举约数,这样处理起来会方便很多。 莫比乌斯函数 我们先考虑这样一个函数 μ(n)\原创 2021-11-18 13:55:50 · 64 阅读 · 0 评论 -
CodeForces - 1271D
显然对于每个城堡,派人越晚越好,我们令每个城堡只会在进行到最晚的能派人到这个城堡的时候考虑是否派人,对于派人,攻占完每一个城堡后考虑派人,显然先考虑重要性最大的。 那么我们就可以进行 dp 了,设 $dp[i][j]$ 表示攻占完第 $i$ 个城堡后,有 $j$ 个人的答案。 枚举当前城堡打完后会派出去几个人进行转移。 ``` #include <bits/stdc++.h> #define mp(x, y) make_pair(x, y) #define pb emplace_back原创 2021-11-18 13:53:11 · 187 阅读 · 0 评论 -
E - Easy genes
E 题目大意 求长度为 lll 的不包含子串 101 和 111 的 01 串有多少个。 solution 考虑对于 01 串 101 和 111 建立关于字符串匹配的自动机(AC自动机),如图: 当匹配到 444 号节点的时候说明匹配到了一个 101 或者 111,我们最终要求的就是匹配不到 444 号节点的串的数目。 记录 f[i][j]f[i][j]f[i][j] 为当前填到第 iii 个数,匹配到自动机上的状态 jjj 的方案数,这样我们就可以根据自动机的转移来建立 dp 方程如下: f[i][0原创 2021-07-20 23:13:57 · 171 阅读 · 0 评论