您当前的位置: 首页 > 

minato_yukina

暂无认证

  • 2浏览

    0关注

    138博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

洛谷P2574 Xor的艺术(线段树)

minato_yukina 发布时间:2021-11-19 11:31:34 ,浏览量:2

题意:给你一个01串,有以下操作. 选择一个区间[l,r],翻转该区间的01串(0变1,1变0) 输出一个区间[l,r] 1 的数量. 思路:典型的区间操作,考虑线段树解决.维护一个区间1的数目,记为tree[idx],如果翻转该区间,实际上就是把这个区间1的数目改为 (r - l +1) - tree[idx].其中 (r - l +1)代表区间长度 ,它减完tree[idx](当前1的数量. 就是目前0的数量.然后是把0翻转为1,1翻转为0.所以(r - l +1 ) - tree[idx] 就代表了翻转区间后1的数目. 剩下就是经典线段树维护了.

/*
*/
#include
using namespace std;
typedef long long ll;
const int maxn = 2e5+4;
const int INF = 1e9+7;
#define L (idx            
关注
打赏
1663570241
查看更多评论
0.0363s