题目描述
用一个 32 位非负整数表示一个集合:如果第 位(从最低位数起, 从 0 开始)是 1,就认为元素 在这个集合里。
给定 组询问,每组两个 32 位非负整数 、,判断 表示的集合是不是 表示的集合的子集( 里的每个元素都在 里)。是输出 yes,否则输出 no。
判定口诀: 是 的子集,当且仅当 (a & b) == a——用 bitset<32> 做按位与,再整体比较即可。
输入格式
第一行一个整数 ()。
接下来 行,每行两个 32 位非负整数 、()。
输出格式
对每组询问输出一行:yes 或 no。
样例
输入:
5
1 3
3 1
5 7
8 7
0 12345
输出:
yes
no
yes
no
yes
1 的集合 {0} 装在 3 的集合 {0, 1} 里,输出 yes;反着来 3 就不是 1 的子集;8 的元素 {3} 不在 7 的集合 {0, 1, 2} 里;空集是任何集合的子集。
数据范围
,读入请用 unsigned。提示:(a | b) == a 判的是反方向的关系( 是 的子集),别拧了方向。