zoukankan      html  css  js  c++  java
  • Codeforces #250 (Div. 2) B. The Child and Set

    版权声明:本文为博主原创文章,未经博主同意不得转载。

    https://blog.csdn.net/u011639256/article/details/28100041

    题读错了啊。。。

    一直跪,但刚開始我的思路是正确的

    假设做出来了rating一定会暴涨的抓狂

    我的方法是找出1到100000全部数相应的lowbit()值

    再暴力,可惜题读错了,lowbit的意思是找出该数二进制数从右向左1出现的最早位置相应的数值

    代码例如以下:

    #include <cmath>
    #include <stack>
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #define MAXN 100010
    #define ll long long
    using namespace std;
    
    int a[] = {1, 2, 4, 8, 16, 32, 64, 128,
                256, 512, 1024, 2048, 4096, 8192,
                16384, 32768, 65536, 131072};
    int b[MAXN];
    int c[MAXN];
    ll sum[MAXN];
    
    void f(void) {
        sum[0] = 0;
        for(int i=1; i<MAXN; ++i) {
            for(int j=0; j<18; ++j) {
                if(i & a[j]) {
                    b[i] = a[j];
                    break;
                }
            }
            sum[i] = sum[i-1]+b[i];
        }
        return ;
    }
    
    int main(void) {
        ll s, k;
        int tmp;
        f();
        while(cin >> s >> k) {
            int cnt = 0;
            if(s > sum[k]) {
                printf("-1
    ");
                continue;
            }
    
            for(int i=k; i>0; --i) {
                if(s-b[i] > 0) {
                    s -= b[i];
                    c[cnt++] = i;
                }
                else if(s-b[i] == 0) {
                    c[cnt++] = i;
                    break;
                }
            }
            
            printf("%d
    ", cnt);
            printf("%d", c[0]);
            for(int i=1; i<cnt; ++i)
                printf(" %d", c[i]);
            cout << endl;
        }
        return 0;
    }


查看全文
  • 相关阅读:
    分片副本监控优化备份分词器03
    es score限制
    German Collegiate Programming Contest 2017 G. Water Testing
    SQL注入以及sqlmap初体验
    BUUCTF [极客大挑战 2019]Upload 1
    DVWA—File Upload 文件上传
    DVWA—XSS 跨站脚本攻击
    WUSTCTF2020 佛说:只能四天
    猪圈密码
    2016全国大学生信息安全竞赛 破译
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10878010.html
  • Copyright © 2011-2022 走看看