![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
sszxzzh
这个作者很懒,什么都没留下…
展开
-
【CF427C】Checkposts
解析: 首先对于第一问肯定是求强连通分量,然后对每个强连通分量的中的最小值求和即可。 对于第二问,算出每个强连通分量内有多少个该分量中的最小值,然后根据乘法原理乘起来就行了。 注意取模是针对第二问,第一问不用取模! 代码:#include <bits/stdc++.h>using namespace std;...原创 2018-09-11 21:36:31 · 307 阅读 · 0 评论 -
【codeforces 402D】Upgrading Array
题目:Upgrading Array题意: 给出一个数列,可以进行一种操作将某一个前缀除去他们的gcd,有一个函数: 其中p是坏素数,问经过若干操作后: 以上的最大值。解析: 贪心+质数筛选+分解质因子。 首先明确结果就是每个数的 f(x) 之和,f(x)...原创 2018-10-27 16:51:52 · 341 阅读 · 1 评论 -
【codeforces 451E】Devu and Flowers
题目:Devu and Flowers题意: 有n个花坛,要选s支花,每个花坛有f[i]支花,同一个花坛的花颜色相同,不同花坛的花颜色不同,问可以有多少种组合。解析: 多重集组合数+LucasLucasLucas定理+状压。 直接上多重集组合数的公式就行了,这里由于n≤&amp;ThickSpace;20n\leq\;20n≤20,可以将状态压缩为二进制数,即枚举x=0x=0x=0...原创 2018-10-29 20:19:04 · 286 阅读 · 0 评论 -
【codeforces 17C】Balance
题目:Balance题意: 计数类DP。 给出一个长度为n的只由a,b,c组成的字符串,每次操作可以把一个字母变成其相邻的某个字母,定义一个字符串是平衡的当且仅当三个字母出现的次数相差不超过1,问这个字符串经过若干次操作可以变成多少个不同的平衡的字符串。解析: 参见CodeForces 17 C.Balance(dp) 重点在...原创 2018-10-26 08:13:26 · 461 阅读 · 0 评论 -
【codeforces 486D】Valid Sets
题目:Valid Sets题意: 给出一棵树,求这棵树的满足最大点与最小点之差小于d的连通子图的个数。解析: 计数类DP+树形DP。 由于n只有2000,所以可以枚举每个点作为根且是最大权值进行DFS,遍历子节点根据乘法原理每个子节点分可选可不选。 但是如果节点权值相同会有重复情况,这时候规定这时候子节点编号必须小于或大于根节...原创 2018-10-28 21:06:52 · 177 阅读 · 0 评论 -
【codeforces 559】C. Gerald and Giant Chess
题目:Gerald and Giant Chess解析: 计数类DP。 首先明显不可过。。。 考虑用总方案数减去至少经过一个黑格子的路线数量即为答案。 重点是如何做到不重不漏。把所有格子按照横纵坐标排序。假设左上角是第 0 个黑格子,右下角是第 n + 1 个格子。设 f [ i ] 表示从左上角走到排序后的第 i 个点,并且中途...原创 2018-10-13 20:47:54 · 338 阅读 · 0 评论 -
【Codefoeces 057】C. Array
题目链接:C. Array题意: 求满足以下要求的序列的个数 解析: 非单调不好做,强制变成单调,做法就是将每个数加上其下标,序列就成为值域在[2,2n]的序列且两两互不相同,这时候答案即为: 。 代码:#include <bits/stdc++.h>#define int long longusi...原创 2018-09-28 15:16:14 · 132 阅读 · 0 评论 -
【CF 149D】Coloring Brackets
解析: 这道题主要难在情况有点多,稍微思路不清晰就会GG。 这里借鉴了一下这位大佬的分析:CF 149D Coloring Brackets 题目大意: 给一个给定括号序列,给该括号上色,上色有三个要求1、只有三种上色方案,不上色,上红色,上蓝色2、每对括号必须只能给其中的一个上色3、相邻的两个不能上同色,可以...原创 2018-09-20 20:40:05 · 465 阅读 · 2 评论 -
【CF 185A】Plant
解析: 矩阵快速幂。 令表示年后的上三角形个数,为年后的三角形个数于是得到递推式: 于是可转化成矩阵乘法用矩阵快速幂解决。 代码:#include <bits/stdc++.h>using namespace std;const int mod=1e9+7;const int Max=3;...原创 2018-09-06 20:52:23 · 237 阅读 · 0 评论 -
【codeforces 474D】Flowers
题目:Flowers题意: 一个01序列,问长度在 a[ i ] ~ b[ i ] 有多少个不同的序列,满足1成段出现(长度为K)。解析: 计数类DP。 常规思路:将区间和转化成前缀和相减。 令 f[ i ] 表示长度为 i 的序列的种数,易得转移方程: 代码:#include <bits/stdc++.h...原创 2018-10-27 18:20:16 · 323 阅读 · 0 评论