摘要: 笔记:数据结构 1.语言+算法+数据结构=信息奥赛 数据的存放方式,体现了数据结构 数据结构=数据+结构,结构指储存、操作、关系。 2.线性结构 2.1集合的表示 若用set储存,则需要用insert插入元素,因为set是一颗红黑树。 由于set里面元素单调,可用$O(\log{n})$二分法查找, 阅读全文
posted @ 2018-12-20 21:04 LinearODE 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 听课笔记 2018/11/24 给定一个数列,可能会有多种操作 数据规模$n=10^5$ $Q=10^5$, 扫描一遍$O(nQ)$,$10^8$以上1000ms可能做不了 解决方案 1.树状数组 用来处理区间和 2.线段树 原理:区间的可加性 修改,查询, 延时标记 本子节点的值: t[p].va 阅读全文
posted @ 2018-12-20 21:03 LinearODE 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 线段树练习 原问题: "线段树模板1" 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列 阅读全文
posted @ 2018-12-20 21:01 LinearODE 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 为了解决滑动窗口,我们引入单调队列的概念。 分析题目的要求,我们需要建立一种数据结构,可以满足以下要求: 可以快速读取一个区间的最大值和最小值 能根据编号的大小将元素快速弹出 先分析最大值。对于上述要求,我们可以用一个单调队列来解决这个问题。 我们不妨先看一组测试数据。 滑动窗口的运动轨迹如下: 1 阅读全文
posted @ 2018-12-20 20:58 LinearODE 阅读(1856) 评论(0) 推荐(0) 编辑