上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: 前言 感觉可以用单调队列优化dp的模型还是挺活的,开个随笔记录一些遇到的比较有代表性的模型,断续更新。主要做一个收集整理总结工作。 记录 0x01 "POJ 1821 Fence" ,比较适合入门的题,写出转移方程后可以比较容易的看出决策变量的取值范围的界是单调变化的,以及价值拆开之后也是单调的 C 阅读全文
posted @ 2019-04-19 20:22 __orange 阅读(381) 评论(0) 推荐(0)
摘要: 题意 有一棵树,q个询问,每次询问,指定一个点做树根,再给定k个点,要求把这些点分成不超过m组的方案数,分配的限制是任意两个有祖先关系的点不能分在同一组。题目还保证了所有的询问的k加起来不超过1e5。 思路 如果直接在原树上DP计数,那么q次询问下的DP总复杂度是平方级别的,显然不对。 由于询问点数 阅读全文
posted @ 2019-03-16 17:21 __orange 阅读(364) 评论(0) 推荐(0)
摘要: 简介 对于一颗静态树,O(nlogn)时间内处理子树的统计问题。是一种优雅的暴力。 算法思想 很显然,朴素做法下,对于每颗子树对其进行统计的时间复杂度是平方级别的。考虑对树进行一个重链剖分。虽然都基于重链剖分,但不同于树剖,我们维护的不是树链。 对于每个节点,我们先处理其轻儿子所在子树,轻子树在处理 阅读全文
posted @ 2019-03-03 05:30 __orange 阅读(425) 评论(0) 推荐(0)
摘要: "E. Lunar New Year and Red Envelopes" 题意: 在长度为n的时间轴上,有k个红包,每个红包有领取时间段[s,t],价值w,以及领了个这个红包之后,在时间d到来之前无法再进行领取操作。每次领取的策略是取当前可领取红包中w最大的,w相同时取d最大的。再给m个干扰机会, 阅读全文
posted @ 2019-02-02 00:56 __orange 阅读(157) 评论(0) 推荐(0)
摘要: "E. Selling Souvenirs" 题意: n件物品,有重量和价值,重量只有三种1,2,3。问取不超过m重量的物品的价值总和最大是多少。(n define dd(x) cout P; typedef priority_queue BQ; typedef priority_queue,gre 阅读全文
posted @ 2019-01-27 23:12 __orange 阅读(226) 评论(0) 推荐(0)
摘要: "F. Imbalance Value of a Tree" 题意: 给一颗带点权的树,求所有简单路径上最大点权和最小点权之差的总和。 思路: 所求问题可以看作求各路径上的最大值之和减各路径上的最小值之和。因此考虑每个点权的贡献次数,也就是他们成为最值的次数。 以求最大值之和为例分析问题,我们可以从 阅读全文
posted @ 2019-01-26 03:33 __orange 阅读(187) 评论(0) 推荐(0)
摘要: "E. Physical Education Lessons" 题目:一段长度为n的区间初始全为1,每次成段赋值0或1,求每次操作后的区间总和。(n define dd(x) cout P; typedef priority_queue BQ; typedef priority_queue,grea 阅读全文
posted @ 2019-01-25 01:53 __orange 阅读(204) 评论(0) 推荐(0)
摘要: "F. Dominant Indices" 题意: 给一颗无向树,根为1。对于每个节点,求其子树中,哪个距离下的节点数量最多。数量相同时,取较小的那个距离。 题目: 这类题一般的做法是树上的启发式合并,复杂度是O(nlogn)。但由于这题所求的信息与深度有关,因此可以使用长链剖分的技巧,复杂度可以是 阅读全文
posted @ 2019-01-24 18:22 __orange 阅读(207) 评论(0) 推荐(0)
摘要: "1009 E. Intercity Travelling" 题意:一段路n个点,走i千米有对应的a[i]疲劳值。但是可以选择在除终点外的其余n 1个点休息,则下一个点开始,疲劳值从a[1]开始累加。休息与不休息等概率,设疲劳值总和的期望为p,求p 2n 1 思路:由于期望乘上了2n 1,所以数学意 阅读全文
posted @ 2019-01-21 16:50 __orange 阅读(193) 评论(0) 推荐(0)
摘要: CDQ的嵌套 上一篇博客介绍了一下CDQ的入门思想。这里再介绍一下它的进阶,CDQ套CDQ。其实如果对入门思想掌握的透彻,嵌套也是很容易掌握的,思想是一样的。 什么是嵌套 简单地说,有的问题,如果用一重CDQ来分治一个维度后,在合并时,还无法仅借助一层数据结构(如树状数组)来计算左区间对右区间元素的 阅读全文
posted @ 2019-01-04 00:57 __orange 阅读(400) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页