区间数位运算
按位与
\(ans=L\&(L+1)\&…\&R\)
为二进制位最长公共前缀,其余位为 \(0\)。
| C++ | |
|---|---|
按位或
\(ans=L|(L+1)|…|R\)
为二进制位最长公共前缀,其余位为 \(1\)。
| C++ | |
|---|---|
按位异或
\(ans=L\oplus(L+1)\oplus…\oplus R\)
打表出规律
| C++ | |
|---|---|
\(ans=L\&(L+1)\&…\&R\)
为二进制位最长公共前缀,其余位为 \(0\)。
| C++ | |
|---|---|
\(ans=L|(L+1)|…|R\)
为二进制位最长公共前缀,其余位为 \(1\)。
| C++ | |
|---|---|
\(ans=L\oplus(L+1)\oplus…\oplus R\)
打表出规律
| C++ | |
|---|---|