笛卡儿树
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
笛卡儿树学习小记
定义:笛卡儿树是一种比较偏门的二叉树数据结构,树上的每个点有一个key、value,key是序号,value是值。对于一个点x,满足它的左子树的key都小于它,右子树的key都大于它,也就是说,笛卡儿树是和splay一样的二叉搜索树。并且它还具有堆的性质,对于一个点x,满足它的子孙节点的key都大于(或小于)它。用法:一般是把一个序列建成笛卡儿树,利用笛卡儿树的性质乱搞。 下一篇博客会讲一道例题。原创 2017-08-08 16:15:04 · 495 阅读 · 0 评论 -
【NOIP2017模拟8.8A组】Trip
题目大意:给出一个有n个互不相同元素,有m个询问,每次给出l,r, 询问∑ri=l[a[i]>max(al..i−1)]or[a[i]>max(ai+1..r)]\sum_{i = l}^r [a[i] > max_(a_{l..i-1})] or [a[i] >max_(a_{i+1..r})]。 1<=n<=10^6题解:建一棵笛卡儿树,根的a是最大的。 根据笛卡儿树的性质可得: 1.原创 2017-08-08 16:31:36 · 377 阅读 · 0 评论 -
【ZJOI2012】波浪 &【NOIP2017模拟9.2A组】赤壁情
Description:题解:首先知道对于每一个n的排列,它对应一棵笛卡尔树,而对于每一棵编号为1~n的有n个节点的笛卡尔树,也一定对应一个排列。 这启发我们构这个排列相当于构一棵笛卡尔树,我们就从小往大加入节点。 对于一个新加的节点要么自成一棵子树,要么合并两棵子树,要么贴到一棵子树的前后,每个位置所产生的赤壁之意不同,注意序列的首和尾需要特殊判断。 状态大概是:fi,j,k,0/1,0/1原创 2017-09-05 19:03:07 · 564 阅读 · 0 评论 -
【WC2016模拟】Fountain
Description: 1<=n<=40,1<=d<=10^5,1<=ri<=40题解:傻了傻了,考场竟然没做出这道题。《ZJOI波浪》是这题的加强版。d是没有什么卵用的。考虑把放的喷泉压到最紧,则长度=∑n−1i=1max(r[i],r[i+1])\sum_{i=1}^{n-1}max(r[i],r[i+1])。套个挡板问题即可求出在长度d下的方案数。现在这个dp很容易想到用笛卡尔树去dp。把原创 2017-12-30 07:32:27 · 476 阅读 · 0 评论