随笔分类 -  基础算法 -- 动态规划

上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要:【BZOJ1088】扫雷(递推) 题面 "BZOJ" 题解 忽然发现这就是一道逗逼题。 只需要枚举一下第一个是什么,后面都能够推出来了。。 cpp include using namespace std; define MAX 11111 int f[MAX],ans,a[MAX],n; bool 阅读全文
posted @ 2018-07-02 16:36 小蒟蒻yyb 阅读(202) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4767】两双手(动态规划,容斥) 题面 "BZOJ" 题解 发现走法只有两种,并且两维坐标都要走到对应的位置去。 显然对于每个确定的点,最多只有一种固定的跳跃次数能够到达这个点。 首先对于每个点都计算出两种跳跃方法的次数。 然后按照跳跃次数排序。 显然只可能从跳跃次数少的跳跃到跳跃次数多 阅读全文
posted @ 2018-07-02 15:32 小蒟蒻yyb 阅读(428) 评论(0) 推荐(1) 编辑
摘要:【BZOJ2339】卡农(递推,容斥) 题面 "BZOJ" 题解 先简化一下题意: 在$[1,2^n 1]$中选择不重复的$m$个数,使得他们异或和为$0$的方案数。 我们设$f[i]$表示选择$i$个数异或和为$0$的方案数。 直接算是很麻烦的,所以我们反过来,总数减去不合法的。 因为确定了前$i 阅读全文
posted @ 2018-07-02 10:49 小蒟蒻yyb 阅读(519) 评论(0) 推荐(1) 编辑
摘要:【BZOJ3242】【NOI2013】快餐店(动态规划) 题面 "BZOJ" 题解 假设我们要做的是一棵树,那么答案显然是树的直径的一半。 证明? 假设树的直径是$2d$,那么此时最远点的距离是$d$ 假设存在一个点的距离大于$d$,那么直径可以由这个点到达直径的一个端点拼出。 所以最远点距离为$d 阅读全文
posted @ 2018-06-30 16:59 小蒟蒻yyb 阅读(373) 评论(5) 推荐(0) 编辑
摘要:【CF55D】Beautiful numbers(动态规划) 题面 "洛谷" "CF" 题解 数位$dp$ 如果当前数能够被它所有数位整除,意味着它能够被所有数位的$lcm$整除。 所以$dp$的时候前面所有数的$lcm$要压进$dp$值中。 又因为$lcm$的余数也是有意义的,但是又不能暴力记, 阅读全文
posted @ 2018-06-29 21:31 小蒟蒻yyb 阅读(346) 评论(3) 推荐(1) 编辑
摘要:【BZOJ3507】通配符匹配(哈希,动态规划) 题面 "BZOJ" 题解 对于匹配唯一存在影响的只有通配符,而$?$的影响也并不大,所以唯一需要仔细考虑的是$ $。 考虑一个$dp$,设$f[i][j]$表示上面匹配到第$i$个字符,下面匹配到第$j$个字符是否存在方案。 转移也很显然,但是我们注 阅读全文
posted @ 2018-06-28 17:17 小蒟蒻yyb 阅读(494) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2878】【NOI2012】迷失游乐园(动态规划) 题面 "BZOJ" 题解 记得以前考试的时候做过这道题目 这题的暴力还是非常显然的,每次$dfs$一下就好了。 时间复杂度$O(n^2)$ cpp include include include include include inclu 阅读全文
posted @ 2018-06-20 21:13 小蒟蒻yyb 阅读(305) 评论(4) 推荐(1) 编辑
摘要:【BZOJ2436】NOI嘉年华(动态规划) 题面 "BZOJ" 题解 考虑第一问如何求解 发现状态与选择了哪些活动无关,只与时间有关 设$f[i][j]$表示前$i$个单位时间(离散后),一个嘉年华选择了$j$个活动时 另外一个可以选择的最多的活动数量 转移的话枚举一下转移过来的时间$k$ 考虑时 阅读全文
posted @ 2018-06-17 11:20 小蒟蒻yyb 阅读(246) 评论(0) 推荐(0) 编辑
摘要:【Luogu1912】【NOI2009】诗人小G(动态规划) 题面 "洛谷" 题解 原来$NOI$这么多神仙题。。。 考虑一个极其明显的$dp$ 设$f[i]$表示前$i$个句子产生的最小代价 转移也很显然,就懒得写了。 仔细思考一下,转移具有单调性。 但是我们用单调队列似乎无法直接维护。 继续思考 阅读全文
posted @ 2018-06-15 21:31 小蒟蒻yyb 阅读(477) 评论(2) 推荐(0) 编辑
摘要:【BZOJ1566】【NOI2009】管道取珠(动态规划) 题面 "BZOJ" 题解 蛤?只有两档部分分。一脸不爽.jpg 第一档?爆搜,这么显然,爆搜+状压最后统计一下就好了 阅读全文
posted @ 2018-06-15 16:52 小蒟蒻yyb 阅读(336) 评论(5) 推荐(0) 编辑
摘要:【BZOJ1065】【NOI2008】奥运物流(动态规划) 题面 "BZOJ" "洛谷" 题解 先不考虑环的情况,于是变成了一棵树。 这样子我们答案的贡献是$\sum_{i=1}^nC_i\times k^{dep[i]}$ 其中$dep$是点的深度 考虑环的影响,显然是$R(1)$的贡献沿着环反复 阅读全文
posted @ 2018-06-15 15:35 小蒟蒻yyb 阅读(293) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1063】【NOI2008】道路设计(动态规划) 题面 "BZOJ" 题解 发现每个点最多只能被修一次等价于每个点最多只能和两条铁路相邻 考虑一个$dp$ 设$f[i][0/1/2]$表示以$i$为根,当前点与他的儿子已经有$0/1/2$条铁路相邻的方案数 转移也很简单,考虑每个儿子,枚举 阅读全文
posted @ 2018-06-08 15:31 小蒟蒻yyb 阅读(255) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1494】【NOI2007】生成树计数(动态规划,矩阵快速幂) 题面 Description 最近,小栋在无向连通图的生成树个数计算方面有了惊人的进展,他发现: ·n个结点的环的生成树个数为n。 ·n个结点的完全图的生成树个数为n^(n 2)。这两个发现让小栋欣喜若狂,由此更加坚定了他继续 阅读全文
posted @ 2018-06-08 11:17 小蒟蒻yyb 阅读(512) 评论(0) 推荐(1) 编辑
摘要:【BZOJ3672】【NOI2014】购票(线段树,斜率优化,动态规划) 题解 首先考虑$dp$的方程,设$f[i]$表示$i$的最优值 很明显的转移$f[i]=min(f[j]+(dep[i] dep[j])·p[i])+q[i]$ 其中满足$dep[i] dep[j]\le L[i]$ 然后就可 阅读全文
posted @ 2018-06-07 14:25 小蒟蒻yyb 阅读(338) 评论(0) 推荐(2) 编辑
摘要:【BZOJ2306】幸福路径(动态规划,倍增) 题面 "BZOJ" 题解 不要求确切的值,只需要逼近 显然可以通过移动$\infty$步来达到逼近的效果 考虑每次的一步怎么移动 设$f[i][j]$表示走$i$步到了$j$能够得到的最大权值 $f[i][v]=max(f[i 1][u])+W[v] 阅读全文
posted @ 2018-05-30 22:03 小蒟蒻yyb 阅读(325) 评论(0) 推荐(0) 编辑
摘要:【CF809E】Surprise me!(动态规划,虚树,莫比乌斯反演) 题面 "洛谷" "CodeForces" 翻译: 给定一棵$n$个节点的树,每个点有一个权值$a[i]$,保证$a[i]$是一个$1..n$的排列。 求$$\frac{1}{n(n 1)}\sum_{i=1}^n\sum_{j 阅读全文
posted @ 2018-05-29 22:06 小蒟蒻yyb 阅读(687) 评论(2) 推荐(2) 编辑
摘要:【CF613D】Kingdom and its Cities(虚树,动态规划) 题面 "洛谷" "CF" 翻译洛谷上有啦 题解 每次构建虚树,首先特判无解,也就是关键点中存在父子关系。 考虑$dp$,设$f[i]$表示解决$i$子树以内的最小点数 再用一个数组$g[i]$表示$i$的子树中还未阻断的 阅读全文
posted @ 2018-05-28 21:56 小蒟蒻yyb 阅读(541) 评论(1) 推荐(1) 编辑
摘要:【BZOJ1564】【NOI2009】二叉查找树(动态规划) 题面 "BZOJ" "洛谷" 题目描述 已知一棵特殊的二叉查找树。根据定义,该二叉查找树中每个结点的数据值都比它左儿子结点的数据值大,而比它右儿子结点的数据值小。 另一方面,这棵查找树中每个结点都有一个权值,每个结点的权值都比它的儿子结点 阅读全文
posted @ 2018-05-28 10:59 小蒟蒻yyb 阅读(223) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4818】序列计数(生成函数) 题面 "BZOJ" 题解 显然是求一个多项式的若干次方,并且是循环卷积 或者说他是一个$dp$也没有问题 发现项数很少,直接暴力乘就行了($FFT$可能还慢一些) 然后容斥减掉没有质数的就行了 cpp include include include incl 阅读全文
posted @ 2018-05-26 12:31 小蒟蒻yyb 阅读(400) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1023】仙人掌图(仙人掌,动态规划) 题面 "BZOJ" 求仙人掌的直径(两点之间最短路径最大值) 题解 一开始看错题了,以为是求仙人掌中的最长路径。。。 后来发现看错题了一下就改过来了。。 首先和普通的仙人掌$dp$是一样的, 对于没有问题的圆圆边,直接做最长链的转移(同时更新$ans 阅读全文
posted @ 2018-05-25 21:53 小蒟蒻yyb 阅读(1317) 评论(0) 推荐(3) 编辑

上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页