数据结构(线段树)训练
来源:互联网 发布:php格式文件怎么打开 编辑:程序博客网 时间:2024/06/14 06:42
我数据结构都只会点基础,所以要做一波题了,整天刷图论也没用啊,碰到很难得还是做不出
线段树实在是太重要了啊,威武年神那天网络赛怒过一个只有9人过的线段树
然而我的线段树太水了,只能做做最基础的那种单点更新和成段更新
现在是时候怒刷一波线段树了,改日刷字符串,还有dp,燃烧
poj 2481
题意:给你n个区间,如果一个区间的左右都大于等于另外个并且长度大于另外个,则它大于那个,求每个区间比它大的区间的个数
题意:按照右端点从大到小,左端点从小到大,排序,然后最前面的肯定是最大的,并且保证他的右端点最大,所以就用树状数组存他的左端点,离线求一下就行了
这题G++就是TLE,用了读入优化都T,C++就过了
AC代码:http://paste.ubuntu.net/12520776/
线段树求解LIS的个数(可以重复取同一个元素)
题解:用make_pair,然后区间里维护最长的长度,和最长的个数,用值域插入
存取每个元素为结尾的LIS长度和个数,先更新每个元素,然后将元素插入,修改
左右区间的维护,如果左右的最长长度相等,就数量相加,否则就取最大的
询问时,按照询问的区间的大小,如果都在左边就返回左儿子,如果都在右边就返回右儿子,如果在中间就左右比较
AC代码: http://paste.ubuntu.net/12600186/
线段树求解LIS的个数(可以重复取同一个元素)
题解:用make_pair,然后区间里维护最长的长度,和最长的个数,用值域插入
存取每个元素为结尾的LIS长度和个数,先更新每个元素,然后将元素插入,修改
左右区间的维护,如果左右的最长长度相等,就数量相加,否则就取最大的
询问时,按照询问的区间的大小,如果都在左边就返回左儿子,如果都在右边就返回右儿子,如果在中间就左右比较
AC代码: http://paste.ubuntu.net/12600186/
0 0
- 数据结构(线段树)训练
- CUGB专题训练之数据结构:A - Balanced Lineup(线段树单点或RMQ)
- 【线段树+离散化】Uestc-数据结构专题训练【B】
- 算法训练 操作格子 (线段树)
- 算法训练-线段树
- 线段树专题训练
- 线段树专题训练
- 数据结构-----线段树(一)
- 线段树系列(数据结构)
- CUGB专题训练之数据结构:B - Count Color 线段树区间更新
- hdu线段树专题训练
- 线段树专项训练习题集
- 高级数据结构 - 线段树(1)
- 高级数据结构 - 线段树(2)
- 【数据结构】线段树专辑
- [数据结构]线段树专辑
- 数据结构之线段树
- 数据结构之线段树
- Exception in thread "main" java.lang.UnsupportedClassVersionError:Unsupported major.minor version 52
- javascript 函数
- 苹果开发 笔记(81)ios 调用微信分享链接
- Repository模式
- XCL-Charts强大的仪表盘,xcl-charts仪表盘
- 数据结构(线段树)训练
- jedis中的blpop
- VS2013 配置全局 VC++ 目录
- 作业二——结对项目之需求分析与原型模型设计
- 内存管理-之启动-基于linux3.10
- unity3D剪裁
- Activity启动的过程
- 【本博客搬家到www.cdxy.me】
- [Leetcode]Convert Sorted Array to Binary Search Tree