
【数据结构】笛卡尔树
文章平均质量分 69
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ2616】SPOJ PERIODNI
【题目链接】点击打开链接【思路要点】笛卡尔树DP,先构建笛卡尔树。在本题中,我们可以把笛卡尔树的一个节点看做一个矩形,父节点的矩形在横坐标上包含子节点的矩形。记\(F_{i,j}\)表示在\(i\)的子树中放置\(j\)个车的方案数。转移时先FFT暴力合并子树信息:\(tmp_{i}=\sum_{j=0}^{i}F_{lc,j}*F_{rc,i-j}\)。然后再处理当前节点对应的矩形的转移:\(F...原创 2018-02-24 11:02:43 · 1004 阅读 · 1 评论 -
【USACO】2019 January Contest, Platinum题解
**【T1】**Redistricting【题目链接】点击打开链接【题解链接】点击打开链接【思路要点】将 GGG 看做 +1+1+1 , HHH 看做 −1-1−1 ,记原数组前缀和为 sis_isi 。则可以得到动态规划 dpi=∑j=1kdpi−j+[si−si−j≥0]dp_{i}=\sum_{j=1}^{k}dp_{i-j}+[s_i-s_{i-j}≥0...原创 2019-01-25 21:23:06 · 1113 阅读 · 0 评论 -
【LOJ2950】「NOIP2018」铺设道路
【题目链接】点击打开链接【思路要点】有一个显然正确的贪心:处理区间 [l,r][l,r][l,r] 时,找到区间最小值的位置 midmidmid ,对整个区间执行 amida_{mid}amid 次操作,并分治到 [l,mid−1],[mid+1,r][l,mid-1],[mid+1,r][l,mid−1],[mid+1,r] 分别处理。这个结构对应了序列的笛卡尔树,因此构建...原创 2018-12-13 09:56:42 · 487 阅读 · 0 评论 -
【CodeChef】Count on a Treap
【题目链接】点击打开链接【思路要点】若将一个序列按照元素大小排序,那么其对应的 TreapTreapTreap 即为权值对应的笛卡尔树,并且,被删除的元素可以视作权值为 000 的元素。一个点在 TreapTreapTreap 上所有的祖先即其左侧/右侧对应的所有权值为后/前缀最大值的点。离线操作,对权值离散化,并用线段树维护。插入删除操作可以通过线段树的单调修改实现。对...原创 2018-10-30 18:20:05 · 376 阅读 · 0 评论 -
【省内训练2018-10-28】排序二叉树
【思路要点】若将一个序列按照元素大小排序,那么其对应的排序二叉树即为插入时间对应的笛卡尔树,并且,被删除的元素可以视作插入时间为正无穷的元素。一个点在排序二叉树上所有的祖先即其左侧/右侧对应的所有插入时间为后/前缀最小值的点。离线操作,对权值离散化,并用线段树维护。对于一个修改 iii ,在其对应区间的左端点将对应元素的插入时间改为 iii ,在出右端点后将对应元素的插入时间改为正无穷...原创 2018-10-30 15:02:33 · 278 阅读 · 0 评论 -
【LOJ2868】「IOI2018」会议
【题目链接】点击打开链接【思路要点】首先,方便起见,我们规定相等的数用它们的位置进行比较,这样所有数的大小关系是唯一确定的。考虑一个询问 [l,r][l,r][l,r] ,令 amid=Maxi=lr{ai} (l≤mid≤r)a_{mid}=Max_{i=l}^{r}\{a_i\}\ (l≤mid≤r)amid=Maxi=lr{ai} (l≤mid≤...原创 2018-09-19 12:51:06 · 1400 阅读 · 0 评论 -
【BZOJ4944】【UOJ316】【NOI2017】泳池
【题目链接】BZOJ UOJ【思路要点】考虑对于已知网格,如何计算最大的安全区域的面积。 我们会选用笛卡尔树。 因此,我们考虑枚举区间最小值的位置,进行笛卡尔树DP。 设\(dp_{i,j,0}(i*j≤k)\)表示当前考虑的部分宽度为\(j\),且靠近沙滩的\(i*j\)个格子被确认是安全的情况下最大安全面积恰好为\(k\)的概率。 设\(dp_{i,j,1}(i*j...原创 2018-06-20 15:10:38 · 578 阅读 · 0 评论 -
【UOJ311】【UNR #2】积劳成疾
【题目链接】点击打开链接【思路要点】笛卡尔树DP,记\(F_{i,j}\)表示长度为\(i\)的区间中所有数的最大值小于等于\(j\),所有方案的贡献之和。考虑枚举区间最大值第一次出现的位置,则有:\(F_{i,j}=F_{i,j-1}+\sum_{pos=1}^{i}w_j^{min(pos,i-k+1)-max(1,pos-k+1)+1}*F_{pos-1,j-1}*F_{i-pos,j}\)...原创 2018-02-25 16:16:14 · 335 阅读 · 0 评论 -
【BZOJ2658】【ZJOI2012】小蓝的好友(mrx)
【题目链接】点击打开链接【思路要点】求解不含资源点的矩形个数,用总共的矩形个数减之,得到答案。考虑扫描线,从上至下枚举矩形的下边界,记每一个横坐标\(x\)的资源点最近一次出现在\((x,Depth_x)\)处。维护一棵笛卡尔树(Treap),使得父节点的\(Depth\)始终大于子节点的\(Depth\),记每个点的子树大小为\(Size_x\)。此时,有\(Ans=\sum_{i=1}^{C}...原创 2018-02-25 14:12:23 · 362 阅读 · 0 评论 -
【LOJ3157】「NOI2019」机器人
【题目链接】点击打开链接【思路要点】考虑最右侧的最大值所在的位置 iii ,则 iii 号位置的机器人一定会移动到边界,并且挡住其他经过的机器人,因此枚举 iii 的位置可以将问题分解为左右两个子问题分别处理。注意到 iii 可能的位置一定是靠近中点的,可能被访问到的区间数 MMM 不会是 O(N2)O(N^2)O(N2) 级别的,当 N≤300N\leq300N≤300 时,...原创 2019-07-31 13:40:28 · 1505 阅读 · 0 评论