计数类dp
文章平均质量分 64
ObsdianGungnir
非常弱的OIer
展开
-
SNOI省选模拟赛Round4 T3 回家home 矩阵+容斥
题目大意:n个点m条边,学校在1号店,家在2号点,有k个点(不是家和学校)必须要到达,求从学校到家经过路径数在[l,r]之间的方案数。n题解:我今天才知道一个图的邻接矩阵的k次方是从i到j走k步的方案数...知道了这个,先考虑没有k个限制的情况,我们可以利用前缀和来求出[1,l-1]和[1,r]的方案总和,相减即可。前缀和的处理:在做快速幂时,可以先预处理出2的i次方的转移矩阵,也就是要作k次方的原创 2018-01-18 21:36:24 · 237 阅读 · 0 评论 -
codeforces895C Square Subsets 状压dp
题目链接:戳这里题目大意:Petya又迟到了...老师给了他额外的任务。对于一个数组a,Petya需要统计从中间选择非空子集,使它们的乘积等于某个整数的平方的方法的数量。 如果这些方法所选择的元素的索引不同,则认为这两种是不同的方法。 因为结果可能很大,结果需要mod 10^9+7。题解:一个数是完全平方数,说明它的每个质因子都有偶数个,而a数组中的每个元素最大不超过70,那么我们可以原创 2018-02-27 09:51:22 · 309 阅读 · 0 评论 -
codeforces869C The Intriguing Obsession 动态规划
题目链接:戳这里题目大意:齐心协力,我们可以以超乎想象的速度到达任何地方!现在,火炎姐妹(Fire Sisters)——火怜(Karen)和月火(Tsukihi)正在前往一个她们从未到达的地方——水中的小岛!有三种不同类型的小岛,方便地,各自涂上了红,蓝,紫三色。每种颜色的小岛各自有a,b,c个。这些小岛之间初始时互相分离。可以在小岛之间架桥,两个小岛间最多架一座桥。原创 2018-02-27 10:19:23 · 271 阅读 · 0 评论 -
codeforces52B Right Triangles 计数问题
题目链接:戳这里题目大意:给出一个n*m的只有‘*’和‘.’的矩阵,求三个顶点都是‘*’且直角边平行于矩阵边的直角三角形个数。题解:显然对于一个直角顶点,它能构成的直角三角形的个数为(左边‘*’的个数+右边‘*’的个数)×(上边‘*’的个数+下边‘*’的个数)。代码:#include#define maxn 1005using namespace std;typedef long原创 2018-02-22 09:36:48 · 480 阅读 · 0 评论 -
codeforces486D Valid Sets 树上计数
题目链接:戳这里题目大意:给出一棵树,树上有点权,求这棵树的满足最大点权与最小点权之差小于d的连通子图的个数。题解:我们可以枚举一个点作为最大的点权向下扩展。但这样有一个问题:点权相等的点会重复扩展。所以我们规定点权相等的点,只能由编号小的向编号大的点扩展。代码:#include#define maxn 200005#define maxm 400005#define mod 1原创 2018-02-22 09:57:00 · 276 阅读 · 0 评论