zoukankan      html  css  js  c++  java
  • BestCoder Round #84 Aaronson

    Aaronson

    题意:

    给个中文链接:戳戳戳

    题解:

    这题一看给的公式就是二进制,之后马上就能想到当m大于等于二进制的位数时,输出n的二进制的1的个数就好了。之后就是m小于二进制的位数时,只要加上2的(总位数-m)次方就好了,当且仅当这一位是1的时候成立。

    代码:

    #include <cmath>
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    const int INF=0x3f3f3f3f;
    typedef long long ll;
    #define PU puts("");
    #define PI(A) printf("%d
    ",A)
    #define SI(N) scanf("%d",&(N))
    #define SII(N,M) scanf("%d%d",&(N),&(M))
    #define cle(a,val) memset(a,(val),sizeof(a))
    #define rep(i,b) for(int i=0;i<(b);i++)
    #define Rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define reRep(i,a,b) for(int i=(a);i>=(b);i--)
    const double EPS= 1e-9 ;
    
    /*  /////////////////////////     C o d i n g  S p a c e     /////////////////////////  */
    
    const int MAXN= 1000 + 9 ;
    
    int main()
    {
        int o;
        SI(o);
        while(o--)
        {
            int a,b;
            SII(a,b);
            int c=a;
            int cnt=-1,cnt1=0;
            while(c)
            {
                if (c&1) cnt1++;
                cnt++;
                c>>=1;
            }
            if (cnt<=b) PI(cnt1);
            else
            {
                c=a;
                int ct=0,ct1=0;
                int ans=0;
                while(c)
                {
                    if (c&1)
                    {
                        if (ct<=b)
                        {
                            ans++;
                        }
                        else
                        {
                            ans=ans+(int)pow(2.0,ct-b);
                        }
                    }
                    ct++;
                    c>>=1;
                }
                PI(ans);
            }
        }
        return 0;
    }
  • 相关阅读:
    音乐商店
    sort函数
    优先队列
    畅通工程 并查集,最小生成树,最短路径
    线段树(segment tree )
    bfs
    完全背包
    【Matlab】向图像域添加噪声/高斯/均匀/伽马/指数/椒盐
    【手帐】Bullet Journal教程
    【Matlab】取整函数:fix/round/floor/ceil
  • 原文地址:https://www.cnblogs.com/s1124yy/p/5700149.html
Copyright © 2011-2022 走看看