随笔分类 - 数据结构-堆
摘要:题目链接 "BZOJ2800" 题解 区间加极难操作,差分之后可转化为两点一加一减 那么现在问题就将每个点暂时独立开来 先判定每个点是否被整除,否则无解 之后我们先将化为互质,所有数除一个 求得 那么对于点,满足 $$
阅读全文
摘要:题目链接 "uoj" 题解 以前看别人博客,在考场上用费用流做,一直以为这题是毒瘤网络流题 没想到竟然是贪心模拟题。。。 如果只有一个蔬菜呢?这就是一个经典的普及难度的贪心,正着推面临优先选择的困难,而逆着推由于不存在淘汰,所以可以贪心选最大的 首先的限制很容易处理,只需将每一个蔬菜分出一
阅读全文
摘要:题目链接 "CF487E" 题解 圆方树 + 树剖 裸题 建好圆方树维护路径上最小值即可 方点的值为其儿子的最小值,这个用堆维护 为什么只维护儿子?因为这样修改点的时候就只需要修改其父亲的堆 这样充分利用了一对一的特性优化了复杂度 如此询问时如果为方点,再询问一下的父亲即可 复杂
阅读全文
摘要:题目链接 "BZOJ3832" 题解 神思路orz,根本不会做 设为到的最长路,为出发的最长路,二者可以拓扑序后求得 那么一条边的对应的最长链就是 我们人为加入源汇点,,向每个点连边,每个点
阅读全文
摘要:题目链接 "BZOJ1095" 题解 传说中的动态点分治,一直不敢碰 今日一会,感觉其实并不艰涩难懂 考虑没有修改,如果不用树形dp的话,就得点分治 对于每个重心,我们会考虑其分治的子树内所有点到它的距离,然后取所有不同子树中最大的两个相加来更新答案 如果带修改怎么办呢? 考虑一个点被修改了,
阅读全文
摘要:题目链接 "BZOJ5158" 题解 题中所给的最长上升子序列其实就是一个限制条件 我们要构造出最大的以开头的最长下降子序列,就需要编号大的点的权值尽量小 相同时当然就没有贡献,所以我们不妨令权值为一个到的排列 考虑如何满足限制条件 对于所有的点,点与点之间一定
阅读全文
摘要:题目链接 "BZOJ2535" 题解 航班之间的关系形成了一个拓扑图 而且航班若要合法,应尽量早出发 所以我们逆拓扑序选点,能在后面出发的尽量后面出发,不会使其它点变得更劣,容易知是正确的 第二问只需枚举航班,拓扑排序时忽视,最后无法选点时就是最早的时间 C++ include i
阅读全文
摘要:题目 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, ..., AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物。 自然地,ftiasch想要知道选择元素之和的最大值。你能帮助她吗? 输入格式 第1行,两个整数 N (1 ≤ N ≤ 105)
阅读全文