随笔分类 - 高级数据结构——主席树
摘要:咕咕了两个半月的题
阅读全文
摘要:无摘要..
阅读全文
摘要:其实是NOI2018(雾
阅读全文
摘要:有n个座山,其高度为hi。有m条带权双向边连接某些山。多次询问,每次询问从v出发 只经过边权<=x的边 所能到达的山中,第K高的是多少。
强制在线。
阅读全文
摘要:BZOJ DBZOJ 记mx为最大的满足1mx都能组成的数。 考虑当前能构成1v中的所有数,再加入一个数x,若x>v+1,则mx=v,x不会产生影响;否则x<=v+1,则新的mx=x+v。 对于区间[l,r]的询问,模拟这个过程。假设当前答案为v,查询[l,r]中值在[1,v+1]中的数的和sum,
阅读全文
摘要:给定一个长为n的序列,多次询问[l,r]中最大的只出现一次的数。强制在线。
阅读全文
摘要:"题目链接 BZOJ" "洛谷" 区间第k小,我们可以想到主席树。然而这是静态的,怎么支持修改? 静态的主席树是利用前缀和+差分来求解的,那么对于每个位置上的每棵树看做一个点,拿树状数组更新。 还是树状数组的过程,区间加时,每到一个位置在这棵主席树中插入这个数。 查询时,将所有询问要访问到的主席树存
阅读全文
摘要:"题目链接" 题意: 在给定矩形区域内找出最少的数,满足和 =k。输出数的个数。两种数据范围。 0~50 注意到(真没注意到...)P[i,j]=v的个数,val[i][j][v]表示(1,1)~(i,j)值 =v的所有数的和。(不要被什么 =v坑,和二维前缀和一样,只是一个点的初始值为A[i,j]
阅读全文
摘要:"题目链接" 要求 最大,应让 的最高位尽可能与b相反。带个减法Trie树好像很难做?反正我不会。 从最高位开始,如果这位b是0/1,判断是否存在 $sum+(1 include include define gc() getchar() cons
阅读全文
摘要:"题目链接"
阅读全文
摘要:"题目链接" 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了。。)。 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的。 所以离散化、按时间排序,把操作拆成单点加和减即可。 另外优先级会有重,权值线段树是去重后的,所以要记录sz "" 并根据这个算出k个。 但是对于同
阅读全文
摘要:[TOC] 2018.3.22 Test 时间: 7:30~11:40 得分: 80+65+20=165 总结 时间分配。。 2个月前写的都忘的差不多了。。 注意: T2合并一棵子树,这棵子树某些点的dep[x]可能会变小,于是fa[x][..]应变为0,但如果在循环里写 `&&(1 特判输出2也要
阅读全文
摘要:"题目链接" cpp //离散化后范围1~cnt不要错 include include include // define gc() getchar() define gc() (SS==TT&&(TT=(SS=IN)+fread(IN,1,MAXIN,stdin),SS==TT)?EOF: SS+
阅读全文
摘要:"题目链接" cpp / 序列上的主席树 某点是利用前一个点的根建树 同理 树上的主席树 某个节点可以利用其父节点(is unique)的根建树 排名可以利用树上前缀和求得: 对于(u,v),w=LCA(u,v),u v这条链的值就是 sum "u root]+sum[v root] sum[w r
阅读全文