关于一个平衡树相关的问题
要求维护若干个递增整数序列,要求支持 1.对于一个序列a,给定权值k,将a切成小于k和大于等于k的两个序列 2.将一个序列中所有元素加等于常数 3.将一个序列中所有元素取相反数,并反转整个序列 4.将两个序列归并为一个
做法:
考虑用平衡树+懒标记维护每个序列,操作1直接分裂即可,操作2,3直接打标记即可。而操作4可以用平衡树合并来实现,精细实现可以使得每次折叠的复杂度为
定义势能函数为在同一棵平衡树中,每一个元素
要求维护若干个递增整数序列,要求支持 1.对于一个序列a,给定权值k,将a切成小于k和大于等于k的两个序列 2.将一个序列中所有元素加等于常数 3.将一个序列中所有元素取相反数,并反转整个序列 4.将两个序列归并为一个
做法:
考虑用平衡树+懒标记维护每个序列,操作1直接分裂即可,操作2,3直接打标记即可。而操作4可以用平衡树合并来实现,精细实现可以使得每次折叠的复杂度为
定义势能函数为在同一棵平衡树中,每一个元素