之所以叫这个类型是区间01,本质是每次区间修改都是将区间中各个元素进行诸如0与1间的对换。直接见题。
洛谷P2846 [USACO08NOV]
修改好说,查询需要查询区间中1的个数,其实就是查询区间和。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e5+10;
typedef long long LL;
int n,m,p,a[N],q[N];
struct node
{
int l,r;
int sum,tag;
}tr[4*N];
void pushup(int u)
{
tr[u].sum=tr[u<<1].sum+tr[u<<1|1].sum;
}
void build(int u,int l,int r)
{
tr[u]=
线段树区间01模型与应用

本文探讨了线段树在处理区间01模型问题中的应用,即每次操作交换区间内元素的0和1状态。以洛谷P2846 [USACO08NOV]为例,讲解如何进行区间修改以及如何查询区间内1的数量,即查询区间和。
最低0.47元/天 解锁文章

587

被折叠的 条评论
为什么被折叠?



