计数+动态规划

时间:2021-07-15
本文章向大家介绍计数+动态规划,主要包括计数+动态规划使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

发现如果横纵坐标分别考虑的话并不是很好做,考虑将其旋转 45° ,每步操作变为横纵坐标同时改变 \(1\) 。将横纵坐标拆开分别处理,枚举最后会和的位置 \(O(nm)\) 计算即可。

很明显是需要数位dp的,我们可以使用dp套dp的做法,回想使用 nlogn 复杂度求最长上升子序列的时候,维护了一个单调增的单调栈,使用二进制维护哪些元素在单调栈中,即可状压转移。

直接区间dp。设 dp[i][j][k] 为区间 [i,j] 中最小值为 k 的时候,两端都在区间内部的询问区间的最大贡献,枚举中转点转移即可。

一个重要特点是当 \(k \leq 7\) 的时候非树边一定只有两条。我们可以 \(O(nk)\) 求出树上长度为 \(1 \text{~} k-2\) 的链数量,然后很容易随便就可以拼出大小为 k 的环统计答案即可了。

首先考虑朴素想法,枚举每一个点做根,然后多重背包用二进制拆分一下,树上背包求解,可以得到复杂度 \(O(n^2mlogd)\) 的做法。如果使用单调队列优化多重背包的话可以得到 \(O(n^2m)\) 。依旧不能通过本题(原话

树上联通块使用淀粉质,考虑经过当前根的方案,进行计算。然后递归子树在子树内部求解。可以发现这是正确的。复杂度可以做到 \(O(nmlogn)\)

决策单调性优化 dp 模板。

还有几道并不是很会直接溜掉吧

原文地址:https://www.cnblogs.com/nao-nao/p/15014934.html