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

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\n");
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\n", cnt);
printf("%d", c[0]);
for(int i=1; i<cnt; ++i)
printf(" %d", c[i]);
cout << endl;
}
return 0;
}

最新文章

  1. IOS开发之网络编程开源类 Reachability应用
  2. php web 信息采集
  3. 【Go语言】连接数据库SQLite、MySQL、Oracle
  4. java集合练习——题目
  5. jQuery修改操作css属性实现方法
  6. 2015第10周四-CSS小结
  7. python模块—socket
  8. 虚拟机ping不通主机
  9. Nginx 在configure时的参数
  10. Extjs整合CKEditor富文本编辑器插件
  11. 使用tcpdump拦截linux服务端网络数据
  12. Python 日志处理(三) 日志状态码分析、浏览器分析
  13. windows服务管理操作
  14. 缺少libssl.so.4文件
  15. Perl和操作系统交互(一):system、exec和反引号
  16. P1024 一道naive的二分
  17. linux升级内核
  18. 利用Java创建Windows服务
  19. (转)eclipse 报错 :The method list(String, Object[]) is ambiguous for the type BaseHibernateDao
  20. c#获取指定时区的日期

热门文章

  1. spring, spring mvc, mybatis整合文件配置详解
  2. linux 部署系统通过SecureCRT启动tomcat 控制台中文乱码
  3. QT下载与安装
  4. smb.conf免密登录文件
  5. python基础--快速排序
  6. 51.Lowest Common Ancestor of a Binary Tree(二叉树的最小公共祖先)
  7. arcpy脚本使用多接图表图斑对对应多幅影像进行裁边处理
  8. python安装pika模块rabbitmq
  9. Node的优点和缺点
  10. postgres之清理空间碎片