详解
该函数的主要作用是计算一个数字的二进制中有多少个1,返回值就是其中1的个数。
它使用一张基于表的方法来进行位搜索,因此这个操作的执行效率很高
此处举一题
P1582 倒水
#include <bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) int main() { int n,k; scanf("%d%d",&n,&k); int ans=n; while(__builtin_popcount(n)>k) { n+=lowbit(n); } printf("%d\n",n-ans); return 0; }
原文地址:https://www.cnblogs.com/-xiangyang/p/9483374.html
时间: 2024-11-02 11:51:47