題目鏈結
平衡樹練手題,我們看它這個數列是動態插入的,所以自然而然就會想到用平衡樹來維護。平衡樹splay推薦大家看這篇部落格
其實差的最小值只有可能是它與其前驅或後繼之差,不然就沒有更小的了。因為節點是動態插入的,根據splay的性質,我們為保證複雜度,就會每次將操作節點旋到根,而他的前驅和後繼必然就是之前插入過的數。最後將最小值求和即可。
#include#includeview codeusing
namespace
std;
const
int maxn=1e6+7
;const
int inf=0x7fffffff
;int ch[maxn][2
];int
n,x;
intrt,sz;
intcnt[maxn],fa[maxn],size[maxn],key[maxn];
intans;
void pushup(int
x)bool check(int
x)void rotate(int
x)void splay(int
x) rt=x;
}void insert(int
x)
int now=rt,f=0
;
while(1
) f=now,now=ch[now][x>key[now]];
if(!now)
}}int
pre()
intnxt()
intmain()
else}}
printf(
"%d\n
",ans);
return0;
}
P2234 HNOI2002 營業額統計
tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是能夠接受的...
P2234 HNOI2002 營業額統計
tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是能夠接受的...
P2234 HNOI2002 營業額統計
tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是能夠接受的...