zoukankan      html  css  js  c++  java
  • CF 456 div.2 B. New Year's Eve

    题意:从1~n中选最多k个数,使异或值最大

    啊啊啊   no more than k  每次都自动忽略 奇了怪了

    刚开始以为必须选k个数, 想了半天 

    wa  既然最多能选k个数 那选俩异或值最大的(k==1 就只能选n了

    2^p xor z^p-1 == 2^(p+1)-1 能得到最大值

    找<=n的最大2^p就行

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<map>
    #include<queue>
    #include<stack>
    #include<list>
    #include<set>
    using namespace std;
    typedef long long ll;
    typedef pair<ll,ll> p;
    typedef long double ld;
    #define mem(x) memset(x, 0, sizeof(x))
    #define me(x) memset(x, -1, sizeof(x))
    #define fo(i,n) for(i=0; i<n; i++)
    #define sc(x) scanf("%lld", &x)
    #define pr(x) printf("%lld ", x)
    #define pri(x) printf("%lld ", x)
    #define lowbit(x) x&-x
    const ll MOD = 1e18 +7;
    const ll N = 6e6 +5;

    int main()
    {
    ll i, j, k, l=1;
    ll n, m, t;
    //取2^p<=n, 则2^p xor 2^P-1 == 2^(p+1)-1 为最大值
    cin>>n>>k;
    if(k==1)
    return cout<<n<<endl,0;
    while(l<=n) l*=2;
    cout<<l-1<<endl;
    return 0;
    }

  • 相关阅读:
    LintCode Update Bits
    LintCode Flip Bits
    LintCode Wood Cut
    LintCode Sqrt(x)
    LintCode Binary Search
    LintCode Subarray Sum Closest
    Huffman编码(Huffman树)
    DFS应用——查找强分支
    DFS应用——遍历有向图+判断有向图是否有圈
    DFS应用——找出无向图的割点
  • 原文地址:https://www.cnblogs.com/op-z/p/10797645.html
Copyright © 2011-2022 走看看