
主席树
weixin_44019404
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #695 (Div. 2) E. Distinctive Roots in a Tree
考虑树上dp。down[u]down[u]down[u]表示以u为根结点,向下的最小代价。up[u]up[u]up[u]表示以u为根结点,向上的最小代价。每一次更新向下的时候,如果字节点不行,那他自己肯定不行。如果字树内有一个和u相同,肯定不行。向上更新的时候,假设uuu的父亲节点是fff,首先我们需要删除掉u从f的子树中。然后判断除了u和他的子树以外,是否有和u相等的点。再继承父亲节点的up[u]up[u]up[u]值。这里使用了主席树去查询。//// Created by bytedance原创 2021-01-25 21:27:24 · 176 阅读 · 0 评论 -
Codeforces Round #668 (Div. 2) E
E - Fixed Point Removal每一个数字,能够被删除,当且仅当满足:posi−ai−x<=0pos_i-a_i-x<=0posi−ai−x<=0其中x是他之前已经被删掉的数字的个数。(因为我们总可以在posi−ai−x==0pos_i-a_i-x==0posi−ai−x==0的时候,将该数字删除,所以小于等于0的时候一定满足。)令a[i]=i−a[i]a[i]=i-a[i]a[i]=i−a[i]。(这个时候的a[i]a[i]a[i]就表示成,若他自己能被删除的话原创 2020-09-10 19:40:44 · 105 阅读 · 0 评论 -
主席树 POJ 2104
关于主席树,其实就是线段树的变形。只不过主席树,每个节点,例如 1-2区间这个节点,他存入的是1-2区间现在有几个数字落在这个区间了,即1-2区间内数字个数。这里1-2指的是离散化后的大小。比如 7 8 5 3 2 离散化后,就是4 5 3 2 1所以1-2区间一直要等到原数组7 8 5 3 2读入到3开始,才会有值,之前一直为零。所以我们就找到一颗这样的线段树,来储存区间内数字的个数。...原创 2019-03-22 19:48:27 · 171 阅读 · 0 评论 -
Cutting Bamboos
每一个剪掉的高度是可以计算出拉爹,然后二分出高度,然后用主席树查询,大于这个高度的个数有多少个,乘以高度-二分的高度,然后与每一次需要剪掉的高度进行对比即可。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>...原创 2019-09-06 11:04:17 · 122 阅读 · 0 评论