博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPOJ 1182 Sorted bit squence
阅读量:5860 次
发布时间:2019-06-19

本文共 641 字,大约阅读时间需要 2 分钟。

题目链接:

题意:给出[L,R],已知L*R>=0。将该区间的数字按照二进制中1的个数升序排序,1的个数相等按照数字的大小升序排序。求排序后的数字中第K个数字?

思路:我们首先看0<=L<=R的情况。首先肯定是枚举含有1、2、3……个1的个数,直到枚举到x个1的个数大于K。然后再二分ans,计算[L,ans]中含有x个1的个数。

然后看负数情况。

我们发现,可以去掉最高位的1,变成正数。计算之后再加上最高位的1.

i64 C[N][N];void init(){    C[0][0]=1;    int i,j;    for(i=1;i
=1;i--) { if(n&(1<
k) break; n^=(1<
>1; if(get(M,i)-get(L-1,i)
0) PR(cal(L,R,K)); else if(R==0) { R=-1; K--; if(K==0) puts("0"); else PR((1<<31)|cal(L,R,K)); } else PR((1<<31)|cal(L,R,K)); }}

  

转载地址:http://virjx.baihongyu.com/

你可能感兴趣的文章
ORACLE 日期函数[转载]
查看>>
遇到的那些坑
查看>>
央行下属的上海资信网络金融征信系统(NFCS)签约机构数量突破800家
查看>>
[转] Lazy evaluation
查看>>
常用查找算法总结
查看>>
grep 零宽断言
查看>>
如何定制一个下拉框
查看>>
leetcode389.Find The Difference
查看>>
被神话的大数据——从大数据(big data)到深度数据(deep data)思维转变
查看>>
强制缓存和协商缓存有什么区别
查看>>
Python爬虫--- 1.4 正则表达式:re库
查看>>
我们来说一说TCP神奇的40ms
查看>>
修改校准申请遇到的问题
查看>>
【DL-CV】浅谈GoogLeNet(咕咕net)
查看>>
python大佬养成计划----win下对数据库的操作
查看>>
Mysql 中创建索引和索引的使用问题
查看>>
(cons '(〇 . 前言) 《为自己写本-Guile-书》)
查看>>
docker学习系列13 实现 基于pxc 的mysql 多节点主主同步 ...
查看>>
使用rekit脚手架创建react项目
查看>>
监控软件zabbix之安装
查看>>