CF1842B 题解
题目大意
给定三个栈,每个栈有 n 个非负数,初始值为 u = 0,每取一个数 v,u ← u|v,问最终结果是否能达到 x。
分析
由于是按位或运算,二进制中 0 的部分在或了以后是会根据对方的值来影响结果的。
所以就有贪心策略:只要栈顶的元素在或上 x 以后还等于 x,即 x 二进制位上为 0 的部分其二进制位上也为 0 都选。
代码
1 | |
CF1842B 题解
https://lzj-blog.top/2023/11/23/CF1842B 题解/
给定三个栈,每个栈有 n 个非负数,初始值为 u = 0,每取一个数 v,u ← u|v,问最终结果是否能达到 x。
由于是按位或运算,二进制中 0 的部分在或了以后是会根据对方的值来影响结果的。
所以就有贪心策略:只要栈顶的元素在或上 x 以后还等于 x,即 x 二进制位上为 0 的部分其二进制位上也为 0 都选。
1 | |