hdu 3308 LCIS (线段树)
来源:互联网 发布:淘宝企业店铺是c店吗 编辑:程序博客网 时间:2024/05/21 20:21
题意不难理解 就是求某一区间的最长连续递增子序列。
虽然猜测是线段树做法,但是之前没见过类似题目。 所以搜了下解题报告。
对于某一区间 ,我们保存以从该区最左边点为起点的最长子序列长度,和以该区间最右边的点为终点的最长子序列,以及该区间的最长子序列。
对于中点mid 如果a[mid]>=a[mid+1] 断开 那么有左边最长=左儿子左边最长 右边最长=右儿子右边最长 全局最长=Max(两个儿子的全局最长)
如果是连起来的a[mid]<a[mid+1] 那么在以上基础上更新 如果左边最长=左儿子长度(表示左半全不是最长递增子序列) 那么左边最长+=右儿子左边最长 同理如果右边最长=右儿子长度 那么右边最长+=左儿子右边最长
同时用左儿子右边最长+右儿子左边最长更新全局最长(中间连起来的)
最后查询的时候也有一点需要注意。
如果 对于某一区间 s<=mid &&e>mid 而且满足 a[mid]<a[mid+1]
中间长度并不是 左儿子右边最长+右儿子左边最长
该长度为 min(mid - s +1,tree[(i<<1)].mr) + min(e-mid,tree[(i<<1)|1].ml)
- hdu 3308 LCIS (线段树)
- 线段树 HDU 3308 LCIS
- HDU 3308 LCIS (线段树)
- hdu-3308-LCIS 线段树
- HDU 3308 LCIS 线段树
- 【线段树】HDU 3308 LCIS
- hdu 3308 LCIS(线段树)
- HDU - 3308 LCIS(线段树)
- HDU 3308 LCIS 线段树
- HDU 3308 LCIS(线段树)
- hdu 3308 LCIS(线段树)
- 【线段树求LCIS】HDU 3308
- hdu 3308 LCIS 线段树 区间合并
- hdu 3308 线段树区间 LCIS
- hdu 3308 LCIS (线段树)
- hdu 3308LCIS 线段树 区间合并
- [HDU 3308]LCIS[线段树][区间合并]
- HDU 3308 LCIS 线段树区间更新
- 身份证号码的秘密
- 批处理命令参考
- 缤纷乐——我的快乐
- DRI
- 在线营销优化技术的3G时代已经来临
- hdu 3308 LCIS (线段树)
- 2010.09.22 中秋寄语
- 符合W3C的网站的开发模型和必要性的探讨(二)
- Spring与JPA(Hibernate)集成
- 编程一句话技巧(不断更新)
- eclipse自定义JSP模板
- IGMP 基础知识问答
- Ajax实例
- 正则表达式知识