YunYan

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  数据结构--线段树+树状数组

摘要:题目大意:当输入2时,将p处的点的值修改为x, 当输入1时,判断区间[L,R]的gcd是否几乎正确,几乎正确的定义是最多修改一个数,使得区间[L,R]的gcd为x。 题解:用线段树维护一个gcd数组,在查询的时候,线段树的查询本质就是不停的分块,这时我们可以添加一些剪纸,比如说,对一个根节点root 阅读全文
posted @ 2020-04-04 20:46 Target--fly 阅读(166) 评论(0) 推荐(0)

摘要:例题:https://www.acwing.com/problem/content/1272/ ST表类似于dp。 定义st[i][j]表示以i为起点,长度位2^j的一段区间,即[ i , i + 2^j - 1 ]。 而这个区间又可以被拆分为[i,i+2^(j-1)-1]+[ i + 2 ^ ( 阅读全文
posted @ 2020-03-26 22:04 Target--fly 阅读(187) 评论(0) 推荐(0)

摘要:详细解析 树状数组可以解决查询前缀和/区间和问题。 模板(单点修改) int lowbit(int i) { return i & -i;//或者是return i-(i&(i-1));表示求数组下标二进制的非0最低位所表示的值 } void add(int i,int val)//更新单节点的值 阅读全文
posted @ 2020-03-02 18:20 Target--fly 阅读(104) 评论(0) 推荐(0)

摘要:例题: https://www.luogu.org/problem/P3372(洛谷) 线段树之单点更新: 模板: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1E5+7; ll arr 阅读全文
posted @ 2019-10-16 20:48 Target--fly 阅读(174) 评论(0) 推荐(0)