随笔分类 -  动态规划

摘要:链的部分分 我们设f[i]表示以i结尾的括号序列有多少个,那么i的实际答案就是f的前缀和 显然,所有左括号和不能匹配的右括号的f均为0 对于每一个能匹配的右括号i,我们找到与之匹配的左括号p,以i结尾的括号序列就是以p-1结尾的括号序列加上p~i这段序列。所以f[i]=f[p-1]+1。 时间复杂度 阅读全文
posted @ 2022-10-26 12:00 _maze 阅读(37) 评论(0) 推荐(0) 编辑
摘要:n <= 10 爆搜即可 n <= 50 什么乱搞 n <= 400 有一个 n3 的 dp 设 dp[i][j] 表示最后一段为 j+1~i 时的最小值 直接三层循环转移即可 dp[1][0] = 0; for(int i = 1;i <= n;i ++) { dp[i][0] = qi[i 阅读全文
posted @ 2022-10-26 09:10 _maze 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1 :长链剖分的构造 推荐先行学习重链剖分 与重链剖分类似,我们设一个节点中深度最深的子节点为长节点,设该节点到长节点的边为重边,其他边为轻边 然后我们把首尾相连的重边组成长链,落单的一个节点也被视作一条长链 我们就把树分成了若干条互不相交的长链 2:长链剖分的性质 树上所有长链长度和为n 互不相交 阅读全文
posted @ 2022-10-14 18:44 _maze 阅读(434) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示