这里进原题

B. The Child and Set


题目大意

有一个集合为 {1,2,3,…,limit}。李四想知道是否存在一个sum,使集合中部分数的lowbit(二进制表达式中最低位的1所对应的值)和等于sum。


解析

像我这种蒟蒻首先要知道的是lowbit怎么算qwq

int lowbit(int x) {return x&(-x);
}

既然要算lowbit的和是否等于sum,就用写结构体把所有数字及其对应的lowbit值存到数组里,对他进行一个由大至小的排序,然后贪心去做就行。


AC CODE

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
using namespace std;
const int N = 1e5+10;
typedef long long LL;struct node {int low,nmb;
};
bool cmp(node a,node b){return a.low > b.low;
}
int lowbit(int x) {return x&(-x);
}/* BOKI */
int main() {int limit,sum; cin >> sum >> limit;node bit[N];int tot = 0,b[N],cnt = 0;for(int i = 1;i <= limit;i++) {bit[i].low = lowbit(i),bit[i].nmb = i;}sort(bit+1,bit+limit+1,cmp);for(int i = 1;i <= limit;i++) {if(tot + bit[i].low <= sum) tot += bit[i].low,b[cnt++] = bit[i].nmb;if(tot == sum) break;if(i == limit && tot != sum) {cout << -1 << endl; return 0;}}cout << cnt << endl;for(int i = 0;i < cnt;i++) cout << b[i] << ' ';cout << endl;return 0;
}

END

CodeForces - 437B The Child and Set 题解相关推荐

  1. CodeForces - 437A . The Child and Homework 题解

    点这里进原题 A. The Child and Homework 题目大意 李四要做题,题目有ABCD四个选项,如果其最长的选项大于其他所有选项的长度的2倍或最短的选项小于其他所有选项的长度的1/2, ...

  2. Codeforces 437C The Child and Toy(贪心)

    题目连接:Codeforces 437C  The Child and Toy 贪心,每条绳子都是须要割断的,那就先割断最大值相应的那部分周围的绳子. #include <iostream> ...

  3. Codeforces Round #686 (Div. 3) A-F题解

    Codeforces Round #686 (Div. 3) A-F题解 A. Special Permutation 题意 给定 nnn ,输出一个长度为 nnn 的全排列,每个位置 iii 上的数 ...

  4. Codeforces Round #693 (Div. 3)部分题解

    Codeforces Round #693 (Div. 3) 部分题解 D. Even-Odd Game 思路: 贪心:田忌赛马 (1)先将数组从大到小排序,取数时从大到小取,用一个ans变量记录取数 ...

  5. Codeforces Round #702 (Div. 3)A-G题解

    Codeforces Round #702 (Div. 3)A-G题解 比赛链接:https://codeforces.ml/contest/1490 这场F读错题意白给一发,G二分的if(dp[mi ...

  6. codeforces Round #645 (Div. 2)D题解

    Codeforces Round #645 (Div. 2)--D题解 作为一名菜鸡,理所当然得没有A出来,这道题数据放小就一水题了,可惜数据这块卡的死死的. 本题最重要的一点就是你要推出来一个结论: ...

  7. Codeforces 1092 D1 Great Vova Wall 题解

    Codeforces 1092 D1 Great Vova Wall 题解 题目 题意 代码 思路 总结 题目 原题链接 题意 一组数字,要求在经过水平和垂直增加高度后所有数值大小一致,不能阶跃式增加 ...

  8. Codeforces Round #670 (Div. 2)A-D题解

    Codeforces Round #670 (Div. 2)A-D题解 //写于rating值1987/2184 //补档 比赛链接:https://codeforces.ml/contest/140 ...

  9. Codeforces Round #674 (Div. 3)A-F题解

    Codeforces Round #674 (Div. 3)A-F题解 比赛链接:https://codeforces.com/contest/1426 A题 水题不写题解 #include<b ...

最新文章

  1. 数字信号处理基础----FM的调制与解调
  2. python 单通道转3通道
  3. 关于权限系统的一些思考
  4. 拿什么来衡量程序员的生产力?
  5. Hologres揭秘:高性能原生加速MaxCompute核心原理
  6. Android自定义组合控件--EditText和Button组合成带有清空EditText内容功能的复合控件
  7. P4585-[FJOI2015]火星商店问题【线段树,可持久化Trie】
  8. Bootstrap缩略图.thumbnail
  9. 2009年3月全球程序设计语言排名(强烈推荐!)
  10. linux下编译C++程序无法链接Mysql的问题
  11. a new weekday
  12. megacli通过盘符定位物理盘_Megaraid 磁盘定位
  13. 一封来信,你的一封来信,一封Ta的来信,爆火的匿名信H5源码功能开发和分析,表白祝福道歉短信发送系统
  14. android gralloc流程分析for msm8960
  15. VS中读取NMEA数据进行定位精度分析
  16. 5G无线技术基础自学系列 | CloudRAN架构
  17. 古人说的雅事,通常是做什么?
  18. python编写贪吃蛇大战_用Python实现贪吃蛇双人大战
  19. 无线网络WPA-PSK加密破解
  20. 中国计算机博士生陈慧祥,中国计算机博士生在美自杀 陈慧祥博士最新消息导师是谁?...

热门文章

  1. ping命令一直测试网络丢包原因及处理解决方法
  2. 微信小程序使用html2canvas,在小程序中使用canvas的方法示例
  3. 看周鸿祎怎么谈乔布斯
  4. 从一位阿里 P9 的年薪和资产聊起!
  5. python基础-猜数游戏
  6. 我的专业我做主计算机演讲稿,我的未来我做主演讲稿
  7. 普林斯顿Stata教程 - Stata编程
  8. 24安装失败 spss win10_win10的电脑安装spss22的时候一直出现这个问题,是怎么回事?...
  9. 调研分析-全球与中国可堆叠USB连接器市场现状及未来发展趋势
  10. 如何通过ARX程序直接设置当前视图为顶视图(底视图)等?