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

灯光开关切换(c++)

题目描述

Farmer John 为了保持奶牛拥有一个聪明的脑袋(很令人怀疑,囧),所以让它们玩脑力开发玩具。其中一个较大型的玩具就是在牛棚中的电灯。农场中总共有 N ( 2 <= N <= 500 ) 个牛棚,每个牛棚上方都有一个编号为 1 到 N 的彩色灯泡。

傍晚时分,所有的灯泡都是关闭着的。奶牛们通过 N 个按钮来控制着灯泡的开与关。按下编号为 i 的按钮会使编号为 i 的灯泡的状态改变,比如从开到关,从关到开。

奶牛们阅读并执行一个由 M ( 1 <= M <= 2000 ) 个操作符和它的参数所组成的操作清单。每个操作符由一个整数表示 ( 0 <= 操作符 <= 1 )。

编号为 0 的操作符包括 2 个参数,Si​ 和 Ei​ ( 1 <= Si​ <= Ei​ <= N ),要求奶牛依次按下了从第 Si​ 号开关到第 Ei​ 号的开关。

编号为 1 的操作符仍然有2个参数,Si​ 和 Ei​ 。这条命令要求奶牛数出在第 Si​ 号和第 Ei​ 号灯泡之中,有多少灯泡是亮着的。

请你帮助 Farmer John 确定奶牛是否按下了正确的按钮和数出正确的答案。

输入格式

第一行:2 个由空格分开的整数 N 和 M 。

第二行到第 M+1 行:每一行有 3 个由空格分开的整数:操作符(0或1),Si​,Ei​

输出格式

每次出现 1 号操作符就输出一次正确的当前灯光状态为开的灯泡数量。

样例

输入数据 1

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

Copy

输出数据 1

1
2

Copy

样例解释

指令

灯泡状态

O表示关,*表示开

指令的操作解释输出信息
初始状态O O O O
0 1 2* * O O切换编号为 1 和 2 的灯泡的状态
0 2 4* O * *切换编号为 2,3,4 的灯泡的状态
1 2 3* O * *输出从编号 2 到编号 3 之间灯泡状态为开的灯泡数量1
0 2 4* * O O切换编号为 2,3,4 的灯泡的状态
1 1 4* * O O输出从编号 1 到编号 4 之间灯光状态为开的灯泡数量2
#include<bits/stdc++.h>
using namespace std;
int n,t,a[1005];
int main(){
    cin>>n>>t;
	while(t--){
		int k,x,y;
		cin>>k>>x>>y;
		if(k==1){
			int s=0;
			for(int i=x;i<=y;i++)s+=a[i];
			cout<<s<<"\n";
		}
		else{
			for(int i=x;i<=y;i++){
				if(a[i]==0)a[i]=1;
				else a[i]=0;
			}
		}
	}
	return 0;
}

 


http://www.kler.cn/a/444730.html

相关文章:

  • 6.3.1 MR实战:计算总分与平均分
  • Anaconda3 pypi 清华大学TUNA镜像源使用帮助
  • python学opencv|读取图像(十七)认识alpha通道
  • 设计模式--单例模式【创建型模式】
  • WatchAlert - 开源多数据源告警引擎
  • Android Studio的笔记--BusyBox相关
  • 实现 WebSocket 接入文心一言
  • Spring Boot 项目创建
  • 《Django 5 By Example》阅读笔记:p561-p613
  • Linux crontab 使用教程
  • 幂运算转換
  • Java基本概念6-JVM2
  • C语言中的变量自加操作:前自加与后自加的深入解析
  • AtomGit 开源生态应用开发赛报名开始啦
  • 【优选算法---前缀和】和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和
  • 武汉市电子信息与通信工程职称公示了
  • Guava 库中的 `Multimap` 是一个允许一个键对应多个值的集合 Guava `Multimap` 的基本代码示例:
  • CSSmodule的作用是什么
  • 《 QT 5.14.1 类库模块列表详述》
  • 解决 Amazon S3 管理控制台中 5GB 大小限制的问题
  • 【Rust自学】4.2. 所有权规则、内存与分配
  • 1688商品爬取:商品信息与价格接口获取指南
  • 【设计模式】空接口
  • Web3 时代:技术变革与未来展望
  • Three.js材质纹理扩散过渡
  • 力扣--LCR 53.最大数组和