随笔分类 - 线段树
简单线段树的东西
摘要:题意:要求就是有 \(n <= 7e5\) 长度的序列,然后要求给 \(n\) 个操作,每次删除一个数,删除的是在当前序列中,讲前 \(po_i\) 个数移到后面后的序列中最前面的数。 题解:权值线段树求第 \(k\) 大,然后这个 \(k\) 是根据删除的位置,一次一次找到规律推出来。 代码: #
阅读全文
摘要:原题链接 题意:线段树经典问题,多组询问,问区间内,最大连续字段和。 题解:难的地方在于询问时候的处理,就是返回的是一个结构体,然后里面有 \(Lmax\) 即前缀最大连续子段和, \(Rmax\) 后缀最大连续子段和还有 \(datamax\) 即最大连续子段和,还有 \(sum\) 即区间内的和
阅读全文
摘要:原题链接 题意:就是多组询问,和多组操作,操作只有一种,就是在 \(l\) 到 \(r\) 加上新的地雷,询问是问在 \(l\) 到 \(r\) 一共有多少种地雷。 题解:这题应该是数据结构的一个经典套路,就是记录 \(l\) 和 \(r\) 的位置,在单点 \(l\) 和 \(r\) 上 \(a_
阅读全文
摘要:原题链接 题解:手推一下就知道了是要维护一个平方和的序列,然后就大力码码码。 代码: #include <cstdio> #include <iostream> #include <queue> #include <cstring> #include <vector> #include <algor
阅读全文
摘要:原题链接 题意和思路:挺有意思的一道题,就是两个操作,第一个操作是在 \(l\) 到 \(r\) 的区间上加上首项为 \(k\),公比为 \(d\) 的等差序列。第二个操作是询问第 \(x\) 个数是多少。其实就是区间修改 \(+\) 区间查询,操作一就是在 \(l\) 上加上 \(k\),然后在
阅读全文
摘要:简单线段树操作 咕咕咕 Transformation HDU - 4578 vj talk is cheap, chow the code. #include <iostream> #include <cstring> using namespace std; typedef long long l
阅读全文