0
点赞
收藏
分享

微信扫一扫

【51nod.3047】位移运算(位运算)

蛇发女妖 2022-02-26 阅读 124

位移运算

题目传送门
在这里插入图片描述

输入样例

4
4 2
2 4
3 4
1 3

输出样例

Yes
Yes
Yes
No

解题思路

判断一直右移是否有包含子串

AC代码

#include<cstdio>
using namespace std;
int T;
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		int x,y,ok=0;
		scanf("%d%d",&x,&y);
		if(y==0)//特判
		{
			printf("Yes\n");
			continue;
		}
		while(!(y&1))y>>=1;
		while(x>=y)
		{
			int z=x^y;
			if((x&y)&&(!z||(z&-z)>=y))
			{
				ok=1;
				break;
			}
			x>>=1;
		}
		if(ok)printf("Yes\n");
		else printf("No\n");
	} 
	return 0;
}

谢谢

举报

相关推荐

0 条评论