zoukankan      html  css  js  c++  java
  • 【题解】Luogu P1582 倒水 二进制

    bitset大法好啊

    显然的二进制题,每个瓶子里的水只可能是$2^i$

    所以要剩下$k$个瓶子,就相当于最后总的水量的二进制中的$1$的个数$≤k$

    从最后一位开始添$1$看什么时候这个数的$1$的个数$≤k$就行了

    code

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 namespace gengyf{
     5 inline int read(){
     6     int x=0,f=1;char s=getchar();
     7     while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
     8     while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
     9     return f*x;
    10 }
    11 ll n,k,ans;
    12 ll lowbit(ll x){return x&-x;}
    13 int main(){
    14     n=read();k=read();
    15     bitset<60>a(n);
    16     while(a.count()>k){
    17         ans+=lowbit(n);
    18         n+=lowbit(n);
    19         a=n;
    20     }
    21     printf("%lld",ans);
    22     return 0;
    23 }
    24 /*
    25  affection 挚爱
    26  adopt 采纳
    27  administration 管理
    28  agent 代理
    29 */
    30 }
    31 signed main(){
    32     gengyf::main();
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    springmvc,springboot单元测试配置
    uboot中ftd命令
    在根文件系统中查看设备树(有助于调试)
    协议类接口
    网络设备接口
    块设备驱动框架
    i2c子系统
    触摸屏
    input子系统
    原子访问、自旋锁、互斥锁、信号量
  • 原文地址:https://www.cnblogs.com/gengyf/p/11756604.html
Copyright © 2011-2022 走看看