【THUSC 2013】楼房重建
来源:互联网 发布:淘宝网艾瑞可女式皮衣 编辑:程序博客网 时间:2024/06/08 15:06
题目大意
维护一个序列
思路
问题主要是难在如何维护这个最长栈。
题解用了比较巧妙的方法,因为它并没有“维护“这一个序列。它是类似于树分治这样每一次通过
显然题目与
主要根据以下的思路。
我们利用线段树来维护这个序列,对于一个区间我们维护它的最大值以及这个区间的最长栈的长度。
考虑如何维护这两个值,最大值的维护比较简单,主要是维护后者,记其为
考虑右区间的权值在受到左区间的影响后会剩下什么,设过程
- 若
x>[l,mid)max ,则[l, mid)对大区间的贡献为0(因为其中所有的元素都被前面的元素覆盖了),于是calc(x,l,r)=calc(x,mid,r) - 若
x<=[l,mid)max ,则x 对右区间没有影响,则calc(x,l,r)=calc(x,l,mid)+f(l,r)−f(l,mid) ,之所以右区间的贡献是f(l,r)−f(l,mid) 是因为尽管x 对它没有影响,但它要考虑左区间的影响。
于是这个问题就解决了,时间复杂度为
后记
其实这种实时计算答案的思路在树分治里面就已经见过了,反倒是在序列上比较少见,值得记住的一道题。
0 0
- 【THUSC 2013】楼房重建
- 楼房重建
- 2013THU集训Day1 楼房重建
- bzoj 2957 楼房重建
- bzoj 2957: 楼房重建
- bzoj-2957 楼房重建
- BZOJ 2957 楼房重建
- 【BZOJ2957】楼房重建
- bzoj 2957: 楼房重建
- bzoj2957: 楼房重建
- bzoj2957 楼房重建
- BZOJ2957 楼房重建
- 2957: 楼房重建
- 【Bzoj2957】楼房重建
- BZOJ 2957: 楼房重建
- 2957: 楼房重建
- BZOJ2957 楼房重建
- BZOJ2957 楼房重建
- 判断格式是否为邮箱
- HDU 5327 Olympiad (2015 Multi-University Training Contest 4 2015多校联合)
- 一棵完全二叉树,找到每个节点在这一层右边的点(Populating Next Right Pointers in Each Node)
- 随机产生10个2位正整数 然后排序
- 输入4行4列的矩阵 求主对角线元素的乘积与副对角线元素的乘积
- 【THUSC 2013】楼房重建
- 七夕祝福语大全
- 函数的复写
- ios tableView cell分割线顶到头处理
- opencv copyto函数
- 单源最小路径问题
- 匿名内部类中this的使用问题
- RMQ(ST 与 线段树)eg poj3264
- 函数的重载 Equals用法