首页 > 其他分享 >2022-11-07 Acwing每日一题

2022-11-07 Acwing每日一题

时间:2022-11-07 15:36:21浏览次数:85  
标签:11 07 int lowbit 最后 一位 2022 include Acwing

本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的。同时也希望文章能够让你有所收获,与君共勉!

今天学习位运算中最常见的两个操作,一个是得到n的第k位数,第二个是获得二进制位中最后的一位1(lowbit).

二进制中1的个数

算法原理

获得n的第k位: n >> k & 1;  意思是将n右移k位,&1是为了取出最后一位,如果最后一位为1则输出的最后一位为1,其他为0,如果最后一位为0,则输出最后一位为0,其他结果也为0。
获得n中的最后一位1:lowbit(n) = n & -n = ~n + 1 ;

对lowbit的再进一步解释:
对于一个10的二进制位1010,我们先将其取反,即0变1,1变0,则最后一位1就变成最后一位0,在他右边的数就都是1,这时我们在加1即~1010 + 1,就会让右边的1都进位为0直至原本最后一位1的位置重新变成1.这时我们再用n&(~n+1)就相当于把最后的一位1保存下来,其余不管是它前面的还是后面的都会变成0,因为n与-n的这些位都相反,取&变成0.

代码实现

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
    int n;
    cin >> n;
    while(n--){
        int x;
        cin >> x;
        int ans = 0 ;
        while(x) x -= x & -x; ++ans;
        cout << ans << ' ';
    }
    return 0;
}

标签:11,07,int,lowbit,最后,一位,2022,include,Acwing
From: https://www.cnblogs.com/WangChe/p/16866103.html

相关文章

  • 22.11.07
    1、旧版中 pytorch.rfft函数与新版pytorch.fft.rfft函数对应修改问题旧版:fft=torch.rfft(input,2,normalized=True,onesided=False)#input为输入的图片或者......
  • zzszoi20221107
    20221107zzszoi模拟赛记录作者zzafanti(FreshOrange)请勿转载这次比赛题目较简单但是思维难度高一点开题顺序\(A-C-B-D\)或\(C-A-D-B\)等等都可大概就是\(A,C\)......
  • 2022强网拟态-only
    2022强网拟态only比赛的时候没做得出来,赛后复现一下。只有一次doublefree的机会,好在用的是seccomp开的沙盒,使得一开始就有很多空闲堆块,里面也残留有libc指针,通过堆风水......
  • P1194 买礼物
    ​​传送门​​思路:需要标记哪些通过优惠已经购买了,如果至少有一次是通过优惠购买的,则需要在答案上加上a,因为第一次不是通过优惠购买的。#include<bits/stdc++.h>usingname......
  • P1111 修复公路
    ​​传送门​​思路:用并查集来维护村与村之间的联通关系,类似于最小生成树中的并查集用法。#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;structnode......
  • P8773 [蓝桥杯 2022 省 A] 选数异或
    题面给定一个长度为\(n\)的数列\(A_{1},A_{2},\cdots,A_{n}\)和一个非负整数\(x\),给定\(m\)次查询,每次询问能否从某个区间\([l,r]\)中选择两个数使得他......
  • 【日总结】2022.11.7
    看了看今天的题,T1给我整自闭了然后就打算光看看题不做了)然后发现除了T4都是洛谷主题库的题,难度黑-黄-蓝-红什么组题鬼才然后发现T2不会做,我现在的实力已经是不会......
  • Java学习——11.07
    今天晚上打算补一下英语和数学,于是早上就把Java学了。也不多,稀疏数组的创建,还原。同时也熟悉了数组的创建,打印。就很棒!!!!!!!!!直接上图吧,敲了一上午代码了。   下......
  • ICPC2022沈阳站游记
    拿到了本校第一个区域赛银。本来目标只是拿铜的,因为这场队伍实在太多了,但没想到质量不是很高。赛前就决定要拼速度。开赛前看封面,DRXVST1,却没想到这是签到题。还好......
  • 011 Rust 异步编程,返回错误
    在Rust异步块中,当发生返回错误的时,会是怎么样的呢?本节就这个知识点进行讲解。示例源码usefutures;asyncfnfoo(){"foo"}fnmain(){futures::executor::block_on......