2492. 生肖房间的机关控制

1000ms 256MB 简单 位运算
题目描述
齐夏面前有一排共 32 个神秘机关,这些机关的状态可以用一个 32 位整数 $N$ 的二进制位来表示(最低位为第 0 位,最高位为第 31 位)。1 代表机关开启,0 代表机关关闭。 生肖“地虎”给出了 $M$ 个指令,每个指令包含一个操作类型 $op$ 和一个位置 $i$: 1. **指令 1 (查询)**:询问第 $i$ 位机关的状态。若开启输出 `1`,若关闭输出 `0`。 2. **指令 2 (强制开启)**:将第 $i$ 位机关设为开启状态(无论之前是什么状态)。 3. **指令 3 (强制关闭)**:将第 $i$ 位机关设为关闭状态(无论之前是什么状态)。 4. **指令 4 (状态翻转)**:将第 $i$ 位机关的状态取反(0 变 1,1 变 0)。 请你帮齐夏计算出经过这 $M$ 个指令后,最终机关代表的整数 $N$ 是多少?
输入格式
- 第一行包含两个整数,初始整数 $N$ 和指令数 $M$。 - 接下来 $M$ 行,每行包含两个整数 $op$ 和 $i$ ($0 \le i \le 31$)。
输出格式
- 对于每个 $op=1$ 的指令,输出一行结果(0 或 1)。 - 最后输出一行,表示所有指令执行完毕后,最终的整数 $N$。
样例 1
输入 (Input)

                    
输出 (Output)

                    
样例说明
- 初始 $N=5$ (二进制 `...0101`)。 - 指令 `1 0`:查询第 0 位,结果为 1。 - 指令 `2 1`:开启第 1 位,$N$ 变为 `...0111` (7)。 - 指令 `3 2`:关闭第 2 位,$N$ 变为 `...0011` (3)。 - 指令 `4 3`:翻转第 3 位,$N$ 变为 `...1011` (11)。 - 最终输出 11。
- $0 \le N < 2^{32}$ - $1 \le M \le 10^5$
自测终端 stdin → stdout
› 输入 stdin
CtrlShiftEnter
‹ 输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
训练中心
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字