博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  动态规划 & 递推

上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要:有$n$只精灵,两种精灵球(高级和低级),每种球能捕捉到第$i$只精灵的概率已知。求用$A$个低级球和$B$个高级球能捕捉到精灵数的最大期望。 $n\leq10^5$。 阅读全文
posted @ 2018-06-10 17:34 SovietPower 阅读(224) 评论(0) 推荐(0)
摘要:辣鸡题目! 阅读全文
posted @ 2018-06-10 16:19 SovietPower 阅读(531) 评论(0) 推荐(0)
摘要:一道很恶心的题→_→ 阅读全文
posted @ 2018-06-07 19:38 SovietPower 阅读(340) 评论(4) 推荐(0)
摘要:"题目链接" 要求的和、最大值、最小值好像都可以通过O(n)的树形DP做,总询问点数 include include include // define gc() getchar() define MAXIN 1000000 define gc() (SS==TT&&(TT=(SS=IN)+frea 阅读全文
posted @ 2018-06-06 15:25 SovietPower 阅读(208) 评论(0) 推荐(0)
摘要:"题目链接 BZOJ" "洛谷P2495" 树形DP,对于每棵子树要么逐个删除其中要删除的边,要么直接断连向父节点的边。 如果当前点需要删除,那么直接断不需要再管子树。 复杂度O(m n)。 对于两个要删除的点 u,v 之间的链,若链上没有其它需要删的点,则只需保留链上的最小边权即可。 把有用的点按 阅读全文
posted @ 2018-06-05 21:38 SovietPower 阅读(373) 评论(0) 推荐(1)
摘要:求一棵仙人掌的最大独立集。 阅读全文
posted @ 2018-06-01 08:58 SovietPower 阅读(258) 评论(0) 推荐(2)
摘要:"题目链接 BZOJ" "洛谷" AC代码: 区间DP,f[i][j]表示消掉i~j需要的最少珠子数。 先把相邻的相同颜色的珠子合并起来。 枚举方法一样,处理一下端点可以碰撞消除的情况就行。 当然合并会出现问题,比如有多个同色珠子但是可以分配给两边分别匹配,比如:https://www.luogu. 阅读全文
posted @ 2018-05-08 22:02 SovietPower 阅读(243) 评论(0) 推荐(0)
摘要:难得写出一道不(很)水的题。 阅读全文
posted @ 2018-05-02 09:03 SovietPower 阅读(211) 评论(0) 推荐(0)
摘要:题目链接 洛谷 题意:给定仙人掌图,边权为1,求其直径。 类似求树的直径,可以用(类似)树形DP求每个点其子树(在仙人掌上就是诱导子图)最长链、次长链,用每个点子节点不同子树的 max{最长链}+max{次长链} 更新答案。(不需要存次长链,求解过程中先更新ans,然后再更新最长链即可) 设f[i] 阅读全文
posted @ 2018-05-01 15:28 SovietPower 阅读(215) 评论(0) 推荐(0)
摘要:"题目链接" 数位DP。傻了。。 前导0是有影响的,影响第一位的选择,所以要记。再记录上限,然后在没有限制时记忆化。 阅读全文
posted @ 2018-05-01 11:26 SovietPower 阅读(158) 评论(0) 推荐(1)
摘要:"题目链接" 不同面额的钞票是可以分开考虑的。 ↑其实并不很明白具体(证明?),反正是可以像背包一样去做。 f[x][i][j]表示用前x种面额钞票满足 A有i元 B有j元 (C有sum i j)所需交换的最少数量(=(abs(ΔA)+abs(ΔB)+abs(ΔA+ΔB))/2)。 (i,j是在本来 阅读全文
posted @ 2018-04-29 17:50 SovietPower 阅读(207) 评论(0) 推荐(0)
摘要:"题目链接" 按照优先级移动,操作序列显然是唯一的。 普通的汉诺塔是将n 1个盘子移到中间柱,再将第n个盘子移到目标柱,再将n 1个移到目标柱上的递归过程。 对于本题移动方法还是基本一样的。考虑递推,从i 1个盘子推i个盘子。 p[i][x]表示将x柱上的前i个盘子移走,按顺序操作最终会到哪个柱子上 阅读全文
posted @ 2018-04-28 21:31 SovietPower 阅读(184) 评论(0) 推荐(1)
摘要:"题目链接" 树形DP,考虑子节点对父节点的贡献。 设f[x][i][j]表示当前为x,用i个x去合成上一层装备,花费为j的最大价值。 由子节点转移时 是一个分组背包,需要一个辅助数组g[i][j]表示前i棵子树花费为j能贡献给x的最大价值。 那么 $g[i][j] = max{g[i 1][j k 阅读全文
posted @ 2018-04-27 15:16 SovietPower 阅读(178) 评论(0) 推荐(1)
摘要:"题目链接" "参考" . $Description$ 将$1,2,\cdots,n(n\leq 300)$依次入栈/出栈,并满足$m(m\leq 90000)$个形如$x$要在$y$之前出栈的限制,问合法的出栈序列有多少种。 $Solution$ 没有限制就是个卡特兰数,但有了限制就要考虑好好DP 阅读全文
posted @ 2018-04-16 13:06 SovietPower 阅读(185) 评论(0) 推荐(1)
摘要:"题目链接" 新写了一篇题解,看这儿吧:https://www.cnblogs.com/SovietPower/p/9775319.html。 显然我们要求出$C(n,m)$为奇数的所有$(n,m)$。 有一个结论: $C(n,m)$是奇数时,有$n\&m==m$。 设$f[i]$为从$A[i]$开 阅读全文
posted @ 2018-04-10 09:12 SovietPower 阅读(405) 评论(0) 推荐(0)
摘要:"题目链接" 容易看出是个最短路+DP。既然答案和天数有关,那么就令$f[i]$表示前$i$天最小成本。 这个转移很好想: $f[i]=\min(f[i],\ f[j]+cost(j+1,i)+K)$,$cost(j+1,i)$即第$j+1$天到第$i$天(使用同一道路)所需花费,即最短路,这个可以 阅读全文
posted @ 2018-04-09 09:12 SovietPower 阅读(159) 评论(0) 推荐(0)
摘要:题目链接 洛谷 题目要求将数分成分成$m$段,使得下面这个式子最小($\mu=\frac{\sum_ma_i}$是平均数,$a_i$为第$i$段的和): \(\frac{\sum_{i-1}^m(\mu -a_i)^2}{m}*m^2\) $m$可以乘进去,得: \(m\times\sum_{i=1 阅读全文
posted @ 2018-04-02 15:57 SovietPower 阅读(228) 评论(0) 推荐(1)
摘要:"题目链接" 不难看出矛盾关系可以构成一棵树,如果取一个节点,那么它的父节点就不能取,树形DP就行了。 这不是没有上司的舞会吗。。 但是漏了一种情况,即这个关系可能形成一个环(从n条边和样例能看出来),且有多个连通块,每个连通块一定且仅在根节点处有一个环。 在环上选择一条边断开,把端点分别作为根节点 阅读全文
posted @ 2018-04-02 08:15 SovietPower 阅读(198) 评论(0) 推荐(0)
摘要:"题目链接" 求最大的存活概率,DP+记忆化。 用f[s][x][y][hp]表示在s状态,(x,y)点,血量为hp时的存活概率。 s是个三进制数,记录每个陷阱无害/有害/未知。 转移时比较容易,主要是在陷阱未知时需要知道当前状态这个陷阱为有害/无害的概率,并用这两个概率相加。 如何求某个状态下未知 阅读全文
posted @ 2018-04-01 21:44 SovietPower 阅读(210) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 设$sum_i$表示$i$的二进制表示中$1$的个数,求$$\prod_{i=1}^nsum_i\ mod\ 10000007$$ $Solution$ 因为$n$的二进制有$logn$位,所以我们考虑枚举x,求满足$sum_i=x$的$i$的个数,然后就可 阅读全文
posted @ 2018-04-01 20:06 SovietPower 阅读(188) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页