摘要:
大爷的字符串题 莫队 首先这不是一道字符串题。需要仔细研究题的性质,我们会发现答案即为区间众数的个数,因为我们可以将区间分为众数个递增数列,这样为最优。 所以问题转换为求区间众数个数。使用莫队。 cpp include include include define MAXN 400020 using 阅读全文
摘要:
faebdc的烦恼 莫队 "题面" 思路 有点难想的莫队。 首先我们肯定要一个 记录难度 出现的次数,但是我们发现每次删去一个难度后,如果那个难度的个数恰好是当前最多次数,我们就可能要更新一下答案, 而这取决于有多少难度的个数恰好是当前最多次数 ,于是我们再开一个 记录有多少难度的个数为 。 经过上 阅读全文
摘要:
鬼子进村 fhq treap "题面" 观察题目发现可用平衡树做:每次鬼子拆家即从平衡树中加入被拆的节点;每次村民修房子都向平衡树中删除该节点;每次查询时,只需要求出其后驱与前驱,易知 为答案。 使用$\text{fhq treap}$实现平衡树部分 cpp include include defi 阅读全文
摘要:
P3979 遥远的国度 树剖 "题面" 需要想一下的树剖题,对于询问三需要处理换跟后的情况。我们以1为树根跑一遍剖分,对于换跟进行分类讨论,算出实际答案。讨论有三种情况: (以1为树根的树上) 跟在询问节点的祖先上:因为不影响,所以直接求子树最小值 跟即询问节点:直接查全树 跟在询问节点子树中:画图 阅读全文
摘要:
莫队总结 离线莫队 离线处理询问,暴力按 一定顺序 处理区间询问, 这样我们可以利用上一次询问得到的信息来处理当前询问 ,大大加快速度。 我们一般先按每块$\sqrt{n}$大小对各询问区间左端点分块编号(其中$n$为总区间大小,$m$为询问次数,注意随机数据时$\frac{n}{\sqrt{m\t 阅读全文
摘要:
P2709 小B的询问 莫队 "题面" 只要能想出$O(1)$的方式转移$[l,r]$,莫队就不难了。此题求区间$\sum_{i=1}^kcnt[i]^2$,那我们就$O(1)$更新就好了,先减去原来的贡献,更新 再加上现在的贡献,这样就更新完了。 注意:莫队 小心初始化 ,直接 等可能会炸。 cp 阅读全文
摘要:
[HAOI2015]树上操作 树链剖分 "题面" 裸树剖,线段树带 cpp include include define MAXN 100010 define ll long long define sl (x 1; buildt(sl, l, mid); buildt(sr, mid+1, r); 阅读全文
摘要:
[ZJOI2008]树的统计 "题面" 裸树剖,一个线段树同时维护 和`max`就好了。~~庆祝半小时1A此题。~~ 另外注意,线段树同时支持「区间修改」和「区间查询」时才需要用到 lazy tag。 cpp include include define MAXN 30003 define sl ( 阅读全文
摘要:
CF915E 动态开线段树 "题面" 因为$n\le10^9$,所以动态开点,线段树维护$[1,n]$天非工作日数量。 之前的结构体写法被卡了,只能改成函数传 (虽然也不难) 动态开点好写,但是~~太菜了~~线段树部分写炸了,对 标记理解不深,下放标记时注意不要把本来子区间的信息覆盖了, 下放完标记 阅读全文
摘要:
UVA1674 闪电的能量 树剖 "题面" 水。树剖模板 cpp include include include define MAXN 50005 define sl (x 1; buildt(sl, l, mid); buildt(sr, mid+1, r); } void push_down( 阅读全文