题目描述
维护一个 bitset<1000>,初始时用整数 构造:bitset<1000> b(x);。它的 1000 个位按惯例从最低位数起:最低位是第 位(对应 b[0]),最高位是第 位(对应 b[999])。
依次处理 条操作:
1 i:把第 位置成 1;2 i:把第 位置成 0;3 i:把第 位翻转(0 变 1,1 变 0);4 i:查询第 位的值。
输入格式
第一行两个整数 、(,)。
接下来 行,每行两个整数 op i(,),描述一条操作。数据保证至少有一条 4 操作。
输出格式
对每条 4 操作,按顺序各输出一行一个整数(0 或 1)。
样例
输入:
6 5
4 1
4 3
3 2
4 2
2 1
4 1
输出:
1
1
1
0
5 的二进制是 101,从最低位数第 1、3 位是 1;翻转第 2 位后变成 111;把第 1 位置 0 后变成 110,所以最后查询第 1 位得 0。
数据范围
,,。提示(方向感):从最低位数起的第 位是 b[i-1]——bitset 的下标 0 是最低位,也就是 to_string() 结果的最右一个字符,别顺着字符串从左往右数。