U161533 自创算法与 bitset 的时间复杂度
题目背景
# [blog](https://www.luogu.com.cn/blog/wangxiwen/you-hua-bool-shu-zu-kong-jian)
题目描述
小 W 有个 `bool` 数组 $b$,大小为 $n$,第一个数为 $b[1]$,初始值默认为 $0(false)$。
现在他要改变这个数组,他有 $4$ 个操作。
每一个操作最开始有一个数 $op$。
* $op=1$,`change` 操作:`op x turn`,将 $x$ 位置的布尔值改成 $turn\ (0/1)$。
* $op=2$,`find` 操作:`op x`,求出 `x` 位置当前的布尔值。
* $op=3$,`allReset` 操作:`op turn`,将整个数组全重置为 $turn\ (0/1)$。
* $op=4$,`count` 操作:`op c`,求出整个数组中有多少个 $c\ (0/1)$。
数据保证查询的位置为 $1 \sim n$。
输入格式
第一行两个正整数 $n,m$,$n$ 表示 `bool` 数组的长度,$m$ 表示操作个数。
接下来 $m$ 行,每行有 $2 \sim 3$ 个数,第一个数为 $op$。
* $op=1$,接着有 $2$ 个数,为 $x,turn$(如题意所述)。
* $op=2$,接着有 $1$ 个数,为 $x$。
* $op=3$,接着有 $1$ 个数,为 $turn$。
* $op=4$,接着有 $1$ 个数,为 $c$。
输出格式
每个查询输出数,换行。
说明/提示
只有一个测试点,$n=10^9,m=10^6$,总操作 `allReset` 个数 $\le 5$。