
分治
YiPeng_Deng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF1442D Sum
Description 给你nnn个栈,你需要对于每一个栈,从前往后选择若干个,栈中每一个元素有一个贡献,问选择kkk个的最大贡献是多少。 n≤3000,∑c≤1e6,k≤3000n\le3000,\sum c\le1e6,k\le3000n≤3000,∑c≤1e6,k≤3000 Solution 首先考虑单调性,不可能同时有两个栈没有选择完,因为如果有ai>bja_i>b_jai>bj,一定有ai+1>bj−1a_{i+1}>b_{j-1}ai+1>bj−1原创 2020-11-04 08:31:43 · 504 阅读 · 2 评论 -
【2019杭州集训12.09】向量
Description 给定一棵 nnn 个节点的树,点的标号为 1..n1..n1..n,边有边权。 记 d(u,v)d(u, v)d(u,v) 为 uuu 到 vvv 的路径上边的权值和,对于每个节点 uuu,你需要给出一个 mmm 维 向量 pu=pu =pu={ pu,1,..,pu,mp_{u,1}, .., p_{u,m}pu,1,..,pu,m }。 使得对于任意点对 u,vu...原创 2019-12-10 09:52:05 · 242 阅读 · 0 评论 -
JZOJ6362. 【NOIP2019模拟2019.9.18】数星星(star)
Description Solution 考虑分治,将每一个询问挂在包括它的最大的区间中。 只考虑中点往右的区间的贡献,那么每一个点对于覆盖它的最早的时间有一个贡献。 我们建一个虚树,并且用并查集路径压缩,即覆盖过的点不再走那么就可以保证时间了。 而覆盖的贡献我们记录在一个以时间为下标的树状数组中,便于之后的查询。 然后再考虑从中点往左边处理覆盖操作,并同时处理左端点在当前位置的询问。 但是我们...原创 2019-09-21 14:28:23 · 354 阅读 · 0 评论