随笔分类 - 线段树
摘要:分析 就是线段树啊 至于除法就记录区间minmax看是不是相当于区间减即可 复杂度不会证明 就上网查根号势能分析把根号改成1/k就行啦 代码
阅读全文
摘要:传送门 分析 我们先考虑如果所有数都不相同我们应该怎么办 我们可以直接贪心的在每个点放可行的最大权值 但是题目要求可以有相同的数 我们可以考虑每次让当前节点可发且尽量大的同时给兄弟节点留的数尽量大 我们用线段树维护每个点比它大的点还剩几个 对于每个点要给它的子树预留足够的点即可 代码
阅读全文
摘要:传送门 分析 我们设sum[x]为小于等于x的点现在有多少联通 于是一个序列合法当且只当sum[R]-sum[L-1]=len且所有点度数不大于2 我们知道如果对于序列[L,R]满足条件则[L+1,R]一定满足 如果[L,R]不满足则[L-1,R]一定不满足 所以我们可以枚举R然后找最靠左的满足度数
阅读全文
摘要:传送门 分析 清华集训真的不是人做的啊嘤嘤嘤 我们可以考虑按操作时间把每个操作存进线段树里 如果现在点x正好使一个整块区间的右端点则更新代表这个区间的点 我们不难发现一个区间会因为不同的操作被分成若干块,每块对应序列上不同的区间 于是查询时对于每个线段树上区间查询时二分查找当前点在哪一块中即可 代码
阅读全文
摘要:传送门 题目大意 分析 倒着跑LIS表示以i为开头的LIS,于是对于删除可以暴力重算前10棵树。而对于种树,因为高度不超过10且高度两两不同,所以暴力重算比它矮的10棵树即可。对于需要重算的点,将其从线段树中删掉然后重算即可。我们要维护一个关于x轴的线段树和一个关于y轴的线段树,重算下边的点需要使用
阅读全文
摘要:传送门 分析 我们考虑用所有的情况减去不合法的情况 不难想出所有情况为$C_n^3$ 于是我们考虑不合法的情况 我们知道对于一个不合法的三元组$(a,b,c)$一定是修改后$a<b,b>c$ 于是我们可以离散化后用线段树维护每个点被覆盖了几次 所以每次对于一个点$i$,比它大的点的个数即为在它前面修
阅读全文
摘要:传送门 分析 记录区间最大值,线段树上二分找比这个点大的最靠前位置即可 代码
阅读全文

浙公网安备 33010602011771号