#7728. 灯泡开关

    ID: 7728 传统题 1000ms 256MiB 尝试: 3 已通过: 2 难度: 10 上传者: 标签>bitsetbitset 基础、单点修改、翻转

灯泡开关

题目描述

nn 个灯泡,编号为 11nn。初始时所有灯泡都是关闭状态。

接下来有 qq 次操作,操作分为四种:

  • 1 x:将第 xx 个灯泡打开;
  • 2 x:将第 xx 个灯泡关闭;
  • 3 x:翻转第 xx 个灯泡的状态,开变关,关变开;
  • 4:询问当前有多少个灯泡是打开的。

请你处理所有操作。

本题适合练习 bitset 的基础操作。灯泡只有开和关两种状态,可以用二进制位表示。

输入格式

第一行两个整数 n,qn,q

接下来 qq 行,每行一个操作,格式如题目描述。

输出格式

对于每个操作 4,输出一行一个整数,表示当前打开的灯泡数量。

样例

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

数据范围与提示

  • 对于 100%100\% 的数据,1n1000001 \le n \le 1000001q1000001 \le q \le 100000
  • 提示:bitset 可以使用 setresetflipcount 等操作。