首页 > 其他分享 >位运算

位运算

时间:2024-07-21 11:30:50浏览次数:13  
标签:false 运算 int long ans lld

  • 位运算的性质:各位之间的运算是相互独立的
  • 因此,分别考虑每一位的方案数,显然比你的考场做法更优
点击查看代码
#include <bits/stdc++.h>
using namespace std;
long long p[20];
int main()
{
	p[0]=1;
	for(int i=1;i<=15;i++)
	{
		p[i]=p[i-1]*2;
	}
	int T;
	cin>>T;
	while(T--)
	{
		int n,m;
		cin>>n>>m;
		long long ans=0;
		for(int x=0;x<p[m];x++)
		{
			bool f=true;
			int y=0;
			for(int k=0;k<m;k++)
			{
				if(((x>>k)&1)==1&&((n>>k)&1)==0)
				{
					f=false;
					break;
				}
				else if(((x>>k)&1)==1&((n>>k)&1)==1)
				{
					y++;
				}
			}
			if(f==true)
			{
				ans=ans+p[m]*p[m]*p[y];
			}
		}
		printf("%lld\n",ans);
	}
	return 0;
}

标签:false,运算,int,long,ans,lld
From: https://www.cnblogs.com/watersail/p/18314280

相关文章

  • 【C语言】数据类型与运算符
    一、进制1.1二进制            在大多数计算机系统中,数据都是通过二进制的形式存在的。二进制是一种“逢二进一”的机制,它用0和1两个符号来描述。为了帮助大家更好地理解二进制,接下来通过二进制和十进制的对比来描述二进制的表示方式十进制二进制......
  • Java基础语法01-运算符&流程控制语句If
    Java基础语法1.运算符1.1算术运算符(理解)1.1.1运算符和表达式运算符:对常量或者变量进行操作的符号表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。​不同运算符连接的表达式体现的是不同类型的表达式。举例说明:inta=10;intb=2......
  • Day3 变量赋初值,类运算符和表达式,不同数值型数据间的混合运算混合赋值学习
    算术运算符和算术表达式,赋值运算符和赋值表达式以及逗号运算符和逗号表达式一、变量赋初值变量赋初值就是在为变量开辟空间时为其进行初始化的操作称之为变量赋初值。变量赋虽然比较简单理解,但有许多人不清楚变量赋初值与变量赋值有什么区别,虽然都是使用“=”完成的,但二者并......
  • leetcode位运算(3211. 生成不含相邻零的二进制字符串)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。接下来重点专项练习,加强重难点知识的练习。描述给你一个正整数 n。如果一个二进制字符串 x 的所有长度为2的子字符串中包含 至少 一个 "1",则称 x 是一个 有效 字符串。返回所有长度......
  • C语言之typedef,位运算
    typedef用typedef声明新的类型名来代替已有的类型名声明INTEGER为整型TypedefintINTEGER定义整形变量定义结构体定义数组定义字符型声明POINT为指向函数的指针类型,该函数返回整型值typedefint(*POINT)();用typedef可以声明各种类型名,但不能用来定义变量......
  • Java入门基础:Java中的标识符;Java常量与变量;Java基本数据类型;Java运算符
    一,Java标识符【1】标识符:读音 biaozhifu (注意是标zhi符,不是标shi符,“识”这个字是多音字,我也是才发现^_^,你呢?)【2】标识符是?     包,类,变量,方法.....等等,只要是起名字的地方,那个名字就是标识符。【3】标识符定义规范:  1.四个可以(组成部分):数字,字母,下划......
  • Python入门知识点 4--格式化输出与运算符
    1、格式化输出name='小赵'age=18#print('大家好,我是'+name+'我今年'+age+'岁了')#字符串和整型不能拼接print('大家好,我是'+name+'我今年'+str(age)+'岁了')#把整型转换成字符串输出,但比较麻烦print('大家好,我是',name,'我今年',age,&#......
  • 奇妙的 c++ 混合运算式
    先来看看如下的式子:a*b+c当你在c++中运行它时,你很清楚它是先计算*再计算+的。那么请再来看看这个式子:a+b+c请问它是先执行第一个+,还是先执行第二个+呢?这个问题看上去无解,但实际上我们可以解答:#definelllonglonginta=INT_MAX,b=INT_MAX;llc......
  • 采用反相正基准电压电路的反相运算放大器(运放)
    采用反相正基准电压电路的反相运算放大器(运放)采用反相正基准电压电路的同相运算放大器(运放)设计目标输入ViMin输入ViMax输出VoMin输出VoMax电源电压Vcc电源电压Vee电源电压Vref-5V-1V0.05V3.3V5V0V5V设计说明1此设计使用具有反相正基准的反相放大器将–5V至–1V的输......
  • C语言运算符
    1.算术运算符+加法-减法*乘法/除法%取余 计算时,数据类型不一样的不能直接运算,需要转换成一样的才能运算,有两种转换方式。1.1隐式转换把一个取值范围小的,转换为取值范围大的,隐式转换是计算机自己就可以完成的,不会产生错误的。数据类型从大的到小的顺序为:double>float>lon......