当前位置: 首页 > news >正文

动易网站风格免费下载wordpress小说网站

动易网站风格免费下载,wordpress小说网站,wordpress 恢复默认,设计之家房屋装修游戏题目描述 现有 nnn 盏灯排成一排,从左到右依次编号为:111,222,……,nnn。然后依次执行 mmm 项操作。 操作分为两种: 指定一个区间 [a,b][a,b][a,b],然后改变编号在这个区间内的灯的状态&#xf…

题目描述

现有 nnn 盏灯排成一排,从左到右依次编号为:111222,……,nnn。然后依次执行 mmm 项操作。

操作分为两种:

  1. 指定一个区间 [a,b][a,b][a,b],然后改变编号在这个区间内的灯的状态(把开着的灯关上,关着的灯打开);
  2. 指定一个区间 [a,b][a,b][a,b],要求你输出这个区间内有多少盏灯是打开的。

灯在初始时都是关着的。

输入格式

第一行有两个整数 nnnmmm,分别表示灯的数目和操作的数目。

接下来有 mmm 行,每行有三个整数,依次为:cccaaabbb。其中 ccc 表示操作的种类。

  • ccc 的值为 000 时,表示是第一种操作。
  • ccc 的值为 111 时,表示是第二种操作。

aaabbb 则分别表示了操作区间的左右边界。

输出格式

每当遇到第二种操作时,输出一行,包含一个整数,表示此时在查询的区间中打开的灯的数目。

输入输出样例 #1

输入 #1

4 5
0 1 2
0 2 4
1 2 3
0 2 4
1 1 4

输出 #1

1
2

说明/提示

数据规模与约定

对于全部的测试点,保证 2≤n≤1052\le n\le 10^52n1051≤m≤1051\le m\le 10^51m1051≤a,b≤n1\le a,b\le n1a,bnc∈{0,1}c\in\{0,1\}c{0,1}

solution

用线段树维护开关灯信息

代码

#include <sstream>
#include "iostream"
#include "cmath"
#include "vector"
#include "algorithm"using namespace std;
const int N = 1e5 + 5;int n;struct node {int sum, tag;
} a[4 * N];// 将父节点的 tag 信息向下分摊
void push_down(int rt, int l, int r) {if (a[rt].tag) {int m = r + l >> 1;a[rt * 2].sum = m - l + 1 - a[rt * 2].sum;a[rt * 2].tag = 1 - a[rt * 2].tag;a[rt * 2 + 1].sum = r - m - a[rt * 2 + 1].sum;a[rt * 2 + 1].tag = 1 - a[rt * 2 + 1].tag;a[rt].tag = 0;}
}void push_up(int rt) {a[rt].sum = a[rt * 2].sum + a[rt * 2 + 1].sum;
}void build(int rt, int l, int r) {a[rt].tag = 0;if (l == r) {a[rt].sum = 0;return;}int m = l + r >> 1;build(rt * 2, l, m);build(rt * 2 + 1, m + 1, r);push_up(rt);
}void update(int rt, int l, int r, int L, int R) { // l, r 是 rt管理的区间, L R是修改的区间, k 是修改的量// 整个区间都要改变if (L <= l && r <= R) {a[rt].sum = (r - l + 1) - a[rt].sum;a[rt].tag = 1 - a[rt].tag;return;}push_down(rt, l, r); // tag 向下传递int m = l + r >> 1;if (L <= m) update(rt * 2, l, m, L, R);if (R > m) update(rt * 2 + 1, m + 1, r, L, R);push_up(rt); // sum 向上汇总
}int query(int rt, int l, int r, int L, int R) {// 整个区间都要if (L <= l && r <= R) {return a[rt].sum;}push_down(rt, l, r);int m = l + r >> 1;int s = 0;if (L <= m) s += query(rt * 2, l, m, L, R);if (R > m) s += query(rt * 2 + 1, m + 1, r, L, R);return s;
}int main() {int m;cin >> n >> m;build(1, 1, n);for (int i = 0; i < m; i++) {int op, l, r;cin >> op >> l >> r;if (op == 0) {update(1, 1, n, l, r);} else {cout << query(1, 1, n, l, r) << endl;}}}

结果

在这里插入图片描述

http://www.dtcms.com/a/436992.html

相关文章:

  • 白酒网站模板网站打赏怎么做的
  • 简述制作网站的流程银川市住房和城乡建设局网站公告
  • wordpress做过的大型网站网站谁做的比较好看的
  • 邢台中北世纪城网站兼职广告公司怎么找客户资源
  • 一 建设茶叶网站前的市场分析用sqlite3做网站
  • 公司网站建设需要些什么要求云南俊发建设集团网站
  • 太原网站设计开发公司jsp网站服务器如何做防护
  • 佛山市公司网站建设哪家好青柠直播免费版
  • 学校网站建设需要多少钱手机文字生成链接
  • 通过网站的和报刊建设网站优化顺义案例
  • 网站宣传模式免费做效果图的软件
  • 网站开发 多语言13572074638网站建设
  • 网页游戏交易网站怎么用wordpress建站
  • 用腾讯云做淘宝客购物网站视频室内装修公司哪家好
  • 怎么做销售网站室内设计师的工作内容
  • 学做网站要多少钱青岛营销型网站设计公司
  • 科技展厅绍兴网站建设seo
  • 做网站膜网站怎么做上海网站建设专业公司排名
  • 政法网 网站建设it运维需要学什么
  • 学校网站英文做甜品台的网站
  • 电子计算机哪个专业最吃香兰州网站seo按天计费
  • 做网站比较专业的有哪些公司免费无代码开发平台排行榜
  • 想自己做网站做推广三合一网站建设推广
  • 网站快备如何制作一个二维码
  • 医院网站建设方案详细wordpress图片不能上传图片
  • 石家庄网站推广服务平台电子工程王力卓
  • 企业做网站 里面都写什么国内好的seo
  • 对网站政务建设的建议wordpress搜索判断
  • 绵阳做网站的公司aspnet东莞网站建设价格
  • 腾讯官方网站襄阳营销型网站建设