l i n k link link

分析:

如果 a a a可以变成 b b b 那么去掉前导后缀 0 0 0的 b ′ b' b′ 一定是 a a a的子串
判断子串

  • 对 a a a进行 > > >> >>得到 a ′ a' a′ 若 a ′ & b ′ = b ′ a'\&b'=b' a′&b′=b′ 说明 b ′ b' b′为 1 1 1的位在 a ′ a' a′也是 1 1 1
  • 看 a ′ x o r b ′ a'xor~b' a′xor b′得到的 c c c 若 c c c最低位的 1 1 1比 b ′ b' b′最高位的 1 1 1高 b ′ b' b′才为 a ′ a' a′的子串

CODE:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#define reg register
using namespace std;
typedef long long ll;
int T;
int lowbit(int x){return x&(-x);}
bool check(int a,int b)
{while(b&&(b&1)==0) b>>=1;while(a){if((a&b)==b){int qwq=lowbit(a^b);if((a^b)==0||qwq>b)return 1;}a>>=1;}return 0;
}
int main(){scanf("%d",&T);while(T--){int a,b;scanf("%d%d",&a,&b);check(a,b)?puts("Yes"):puts("No"); }return 0;
}

【51nod P3047】位移运算【位运算】相关推荐

  1. 常用技巧 —— 位运算 —— 位运算基础

    [与运算] 与运算常用于二进制的取位操作,其用符号 & 表示,相同位的两个数字都为1,则为1,若有一个不为1,则为0. 例如:00101 & 11100 = 00100 其会将两个十进 ...

  2. Home_W的位运算(位运算+预处理)

    Home_W的位运算1 题目链接: 传送门解题思路:这题有两种解题思路,一种就是\(n^2\times m\)的时间复杂度,还有一种就是经过预处理的时间复杂度为\(n^2\)的方法,先说第一种,大家直 ...

  3. linux寄存器位运算,位运算的一些操作

    最近在做一些嵌入式软件相关的工作,经常涉及到对于FPGA寄存器的相关操作.而对于寄存器的操作,软件这边通常是把数据进行组装为一个固定位宽(8bit, 16bit)的数通过localbus总线写到寄存器 ...

  4. 位运算 - 位运算基本操作

    package com.bitOperation;/*** java的整数是有符号的,二进制表示的时候,第一位是符号位* 其范围是 -2^31 ~ 2^31-1** Java的设计,负数在内存中存储的 ...

  5. 位运算 位运算应用

    本页目录 位运算分为2个大类 位于 &(一0则0) 位或| (双0则0) 异或 ^(互异则1) 利用异或可实现一个小面试题,如何不添加变量,实现数据的替换 按位取反 ~ 左移 << ...

  6. 汇编指令 栈现场保护 算数运算 位运算 比较指令 跳转指令 循环指令 寻址方式

    文章目录 1 nop 指令 2 现场保护指令 2.1 push 与 pop 2.2 pushad 与 popad 2.3 pushfd 与 popfd 3 内存操作 3.1 mov指令 3.2 mov ...

  7. 常用技巧 —— 位运算 —— 位运算的应用

    1.lowbit:计算一个数字 x 二进制下最低位 1 对应的值 方法: int lowbit(int x){return x&(-x); } lowbit 利用了补码的特性:正数的补码是其自 ...

  8. java 减法 位运算,位运算-实现加减乘除

    基本性质:1:~n=-(n+1),比如:~3=-4 2:获取整数n的二进制串中最后一个1:-n&n=~(n-1)&n 3:去掉整数n的二进制串中最后一个1:n&(n-1) 加法 ...

  9. 算法笔记(一)位运算、二分、基本递归、排序、基本数据结构

    文章目录 位运算 原码.补码与反码 左移右移`<<` & `>>` 无符号右移 异或运算`^` 位运算常用技巧 取相反数 反转0-1 判断负数与非负数 数组交换两元素位 ...

  10. python左移右移位运算_荐Python : 位运算 —— 与、或、异或、左移、右移

    Python : 位运算 -- 与.或.异或.左移.右移 位运算 位运算是把数字用 二进制 表示之后,对每一位上 0 或者 1 的运算.位运算共有 5 种运算:与.或.异或.左移.右移. 与.或.异或 ...

最新文章

  1. 設備(IE01/IE02/IE03)客製欄位及BAPI處理
  2. 再见 Win10系统!下一代操作系统要来了!!
  3. python函数的封装调用_Python封装一个函数来打印到变量
  4. JavaScript 函数replace揭秘
  5. 非极大值抑制(non-maximum suppression)的理解与实现
  6. 笑话一则(小狗的故事)
  7. 小程序源码:多功能图片处理器-多玩法安装简单
  8. 嗯,手搓一个TinyPng压缩图片的WebpackPlugin也SoEasy啦
  9. SolidWorks2010
  10. 雪球: 关于股票的经典书籍有哪些推荐
  11. 数学文章 关于圆锥体积公式的证明
  12. 各种单片机芯片封装形式
  13. [转] 一篇不错的Perl-LWP文档
  14. Help Hanzo(区间素数筛)
  15. thinkphp3.2 数据库 AND OR连缀使用
  16. 比较强大的破解软件网站
  17. 计算机应用700字自我鉴定,有关计算机应用自我鉴定
  18. trs java_trs常见问题 - This Is A FineDay - BlogJava
  19. 面向对象_大纲 by霹雳火毕老师
  20. C++ 并发指南 std::lock

热门文章

  1. 偏置电路一般采用电流通路,而不采用电压通路
  2. 【已验证成功】【DIY小项目】基于CY7C68013A的逻辑分析仪
  3. OpenStack ussuri 私有云平台搭建
  4. python3.7游戏_python3.7自动点击脚本点击游戏窗口内游戏道具不生效
  5. 【学习笔记】zabix监控项概念
  6. 中英文说明书丨艾美捷MAPT单克隆抗体
  7. Satis搭建composer私有库(自定义下载目录)
  8. 你所不知道的AWS 云服务清单(71种)
  9. 基于springboot+bootstrap+thymeleaf的物联网一站式宠物管理平台(领养、救助、商城)设计 毕业论文+用户手册+源码清单+项目源码及数据库文件
  10. 80MHz~100MHz频谱分析仪设计