数据结构-主席树
AcerMo
一只辣鸡大学生
展开
-
POJ2104区间第k小
题意,给你一个数字序列和一堆询问,问你[l~r]里第k小的数线段树,呸,主席树的入门板题,但是我还是学了半天QAQ先说个大暴力,对于每个询问区间,我们排序,然后找第k个数,emm,复杂度爆表然后貌似线段树可行??脑补一下,对于每个询问建一棵树,emm,貌似比暴力复杂度还高??欸,所以我们引入了主席树,主席树呢,用到了前缀和的思路,我们通过前缀和sum[l~r]=sum[1~r]-sum[1~l-1...原创 2018-06-21 21:41:44 · 367 阅读 · 0 评论 -
洛谷P1972&&BZOJ1878[SDOI2009]HH的项链
主席树的练手好题,中文题面不再赘述对于这一道题,我们首先可以有一个很直观的做法:对于询问区间[i,j],直接用[i,j]减去重复颜色的数量。那么我们如何计算重复颜色的数量呢?对于第i个贝壳,我们设其颜色是col[i],重复就是在第i次之前也被计算了,我们在这里就仅仅考虑维护一个last[i]表示第i个贝壳的颜色上一次出现的位置,然后把第last[i]的位置在线段树中+1,设sum[i][j]=线段...原创 2018-06-25 10:30:41 · 295 阅读 · 0 评论