上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页
摘要: 重建道路 树形DP 给一棵树,问最少断多少边使得这棵树树最终只有$p​$个节点 设计dp状态$f[u][i][j]$表示节点$u$,到第$i$个儿子,使$j$个节点分离,但是 不分离$u$ 最少需要断的边数。类比背包,容易得到转移方程: $$ f[u][i][j]=min{f[u][i 1][j k 阅读全文
posted @ 2019-09-12 11:25 Santiego 阅读(181) 评论(0) 推荐(0) 编辑
摘要: DP斜率优化总结 [TOC] 任务安排1 首先引入一道题,先$O(N^2)$做法:分别预处理出$T_i,C_i$前缀和$t[i],c[i]$,设$f[i]$,其中$f[i]$并不表示前$i$个任务花费的时间,而是壳含前面所有决策对于后面的影响。这道题dp思路就是 边决策边加上当前决策对于后面的影响 阅读全文
posted @ 2019-09-05 21:57 Santiego 阅读(289) 评论(0) 推荐(0) 编辑
摘要: P4316 绿豆蛙的归宿 期望DP DAG上,每条边有边权,走向相连每条路的概率相等,问从起点到终点所经过的路径总长度期望 因为发现终点走到终点期望为0,定义$f[i]$从终点走到$i$所经过的路径总长度期望,所以$f[n]=0$。于是建反图,拓扑转移 $$ f[v]+=\frac{w+f[u]}{ 阅读全文
posted @ 2019-08-31 09:33 Santiego 阅读(138) 评论(0) 推荐(0) 编辑
摘要: [JLOI2013]卡牌游戏 概率DP "题面" $dfs$复杂度爆炸,考虑DP。发现决策时,我们只用关心当前玩家是从庄家数第几个玩家与当前抽到的牌是啥。于是设计状态$f[i][j]$表示有$i$个人时, 从庄家数第$j$个人 的胜率。又因为此时终态确定$f[1][1]=1$(只有一个人时那个人胜率 阅读全文
posted @ 2019-08-31 09:22 Santiego 阅读(198) 评论(0) 推荐(0) 编辑
摘要: P2679 子串 DP 从字符串A中取出$k$段子串,按原顺序拼接,问存在多少个方案使拼接的字符串与字符串B相同 淦,又是这种字符串dp 设状态$ans[i][j][k]$表示A串位置$i$,B串位置$j$,已取出$k$段字符串, 不管当前位置$i$是否能匹配上 的方案数,$g[i][j][k]$表 阅读全文
posted @ 2019-08-30 21:12 Santiego 阅读(91) 评论(0) 推荐(0) 编辑
摘要: $\text{fhq treap}$总结 又名范浩强$\text{treap}$,是一种无旋$\text{treap}$。其原理同$\text{treap}$一样都是通过维护一个随机堆来避免退化为单链的情况,但是无需旋转$\text{rotate}$,而是通过分裂$\text{split}$完成操作 阅读全文
posted @ 2019-08-26 18:37 Santiego 阅读(293) 评论(0) 推荐(0) 编辑
摘要: P3802 小魔女帕琪 期望 "题面" 题意稍微不清楚,题中的 指的是属性 的魔法有 个。 题目大意:有7种魔法,每种数量 ,每次随机放出一个魔法,问放完为止出现7次魔法都不相同的期望次数 有点难,先考虑第1次到第7次正好放出7种不同的魔法,则其概率易得: $$ 7!\times\frac{a[1] 阅读全文
posted @ 2019-08-25 22:37 Santiego 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 引水入城 记忆化搜索 "题面" 注意问题本身的特殊性质来解决问题,注意到 每个起点到最后一行的路线之间独立 ,容易想到一种方法:第一行所有点都跑一次dfs,然后标记一下最后一行是谁跑到的,最后问题转换为选取 最少个区间覆盖整个区间 的问题。 考虑使用记忆化搜索优化。发现每一个起点覆盖最后一行的区间一 阅读全文
posted @ 2019-08-23 14:22 Santiego 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 小木棍 爆搜剪枝 看了题解,用一个桶记录小木棍(很是机智,反正$N\le50$),然后就是爆搜剪枝了。 主要是注意一个优化思想:每次拼一个木棍时,一定 先用大的去填再用小的去补。 递减遍历桶和下面这个最重要的剪枝都是这个优化思想 连用大刚好填满这种最优方法都无法拼出,那更不用说先用小的去拼这种方法了 阅读全文
posted @ 2019-08-21 23:00 Santiego 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 赛道修建 二分答案 最小赛道长度的最大值,很明显的二分答案,即求出赛道长度均大于等于$mid$时最多赛道条数,判断是否大于$m$即可。 但是如何求出最多的条数?我们发现这是一颗树,可以用一种 子树递归 计算的思路,算出儿子节点的答案来算出父亲节点的答案,每次我们只管算出当前子树,再将一些情况上传到父 阅读全文
posted @ 2019-08-16 22:50 Santiego 阅读(138) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页