上一页 1 ··· 7 8 9 10 11
摘要: 题意:机翻? 好,假装各位都已经看懂了题。 首先是暴力,枚举每一个点作为根,然后每次做一个树上DP,复杂度O(n2),T掉; 然后,我们考虑怎样优化。 假设我们已经求出了x的答案,对与每一个它的子节点, 我们注意到其实当我们换其子节点y为根时,y的子树贡献是已知的。 只需考虑另外一侧的贡献之间, 同 阅读全文
posted @ 2018-10-17 22:26 薄荷凉了夏 阅读(321) 评论(2) 推荐(1) 编辑
摘要: 首先 此题给出的时一个可以代表二叉树的一个序列 直接递归把树建出来就好了。 然后考虑DP。 比较容易想到的是一个f[i][3]的DP,分别代表以i为根时,i染三种颜色的最大数目。 直接根据限制转移即可,但代码比较长。 考虑(代码)简单一点的, 实际上,由于我们只在意绿色的染了多少,所以染其他两种色没 阅读全文
posted @ 2018-10-17 21:55 薄荷凉了夏 阅读(232) 评论(1) 推荐(1) 编辑
摘要: 因为如果他们之前的也相同, 那么我们是可以直接全转移到当前的,删掉之前的. 阅读全文
posted @ 2018-10-17 21:22 薄荷凉了夏 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 作为特别特别经典的一类序列DP,相信大家都应该了解LCS吧! 那么最基本的n方做法就只简述一下: 设f[i][j]表示第一个序列匹配到了第i位,第二个匹配到了第j位; 转移 然后 n方此处不够优秀 对于两个都是1-n的一个排列的求LCS的问题(LuoGu P1439 模板)是可以nlogn解决的 考 阅读全文
posted @ 2018-10-17 20:27 薄荷凉了夏 阅读(174) 评论(2) 推荐(0) 编辑
摘要: 一 背包: 背包是比较基础但应用比较广泛的一类DP, 其主要类型包括01背包, 完全背包, 多重背包, 分组背包等; 背包问题条件一般可以化为: 给定n个物品,每一个物品有一个价值,一个代价; 01背包就是在给定上述条件下 (每个物品只能用一次)求代价S以内能得到的最大价值。 01背包可以滚成一维, 阅读全文
posted @ 2018-10-07 20:06 薄荷凉了夏 阅读(205) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11