01 2019 档案

摘要:"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 阅读(206) 评论(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 阅读(399) 评论(0) 推荐(0)
摘要:CDQ分治 cdq分治与其说是算法,不如说是一种解决问题的思想或方式。与常规分治对比,常规分治是通过解决左右两个子区间的问题,合并得到大区间问题的解。但cdq分治通过处理左区间对右区间的影响来得到大区间的解。一般来说,cdq分治可以顶替一层数据结构,而且常数小,空间开销也小。缺点是需要离线。 离线为 阅读全文
posted @ 2019-01-03 02:33 __orange 阅读(1191) 评论(0) 推荐(0)