随笔分类 -  数据结构—主席树

该文被密码保护。
posted @ 2019-06-15 21:15 lokiii 阅读(1) 评论(0) 推荐(0)
摘要:考虑b的两种情况,一种是p的祖先,这种点有min(k,de[p] 1)个,然后每个这种b都有si[p] 1个c点可选; 另一种是p的子孙,要求是在p的子树内且deep在de[p]+1~de[p]+k之间,然后一个这样的b点贡献是si[b] 1,也就是在他的子树内选c点,考虑怎么算这个,用dfs序维护 阅读全文
posted @ 2019-04-22 15:39 lokiii 阅读(134) 评论(0) 推荐(0)
摘要:整体二分: 对于每一个修改操作,标记为1,并且加一个标记为 1的这个位置原来值,并且对于a数列每个点都当成修改操作 然后整体二分,扫当前操作区间lr,把在值域区间标记为1和 1的操作都在树状数组对应位置上加/减出来,然后询问操作根据k和询问答案大小决定放在哪部分传下去 cpp include inc 阅读全文
posted @ 2019-04-22 10:27 lokiii 阅读(175) 评论(0) 推荐(0)
摘要:像超级钢琴一样把五元组放进大根堆,每次取一个出来拆开,(d,l,r,p,v)表示右端点为d,左端点区间为(l,r),最大区间和值为v左端点在p上 关于怎么快速求区间和,用可持久化线段树维护(主席树?)每个点到他root的区间和,这样每次右端点右移就是上一个的线段树在(la[a[i]]+1,i)加上a 阅读全文
posted @ 2019-04-05 18:46 lokiii 阅读(197) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-03-15 21:54 lokiii 阅读(6) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-01-10 22:02 lokiii 阅读(6) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-10-10 21:04 lokiii 阅读(3) 评论(0) 推荐(0)
摘要:怜贫济困是人道 哪有个袖手旁观在壁上瞧? 阅读全文
posted @ 2018-09-28 16:00 lokiii 阅读(137) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-09-09 14:47 lokiii 阅读(2) 评论(0) 推荐(0)
摘要:可并堆就可以,但是想复健一下主席树。 考虑枚举管理者,然后选忍者的时候在子树中贪心的从小到大选。做成dfs序就是选区间内和小于等于k的最多点。可以用主席树,查询的时候在主席树上二分即可 这里注意,为了方便起见,离散化的时候即使值相同也离散成不同值,这样可以保证主席树叶子结点的size最大为1,方便二 阅读全文
posted @ 2018-04-16 09:56 lokiii 阅读(128) 评论(0) 推荐(0)
摘要:直接建图比较显然,是(s,i,w),(i,t,b),(i,i',p),(i,j,inf),然而建出来之后发现边数是n方级别的,显然跑不过去,然后就有一种比较神的思路:把a离散了建一棵权值线段树,然后要连的j直接放到一个区间内。然而题目又要求j include include include incl 阅读全文
posted @ 2018-02-02 15:27 lokiii 阅读(167) 评论(0) 推荐(0)