题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5491

分析:对于给出的D,我们令D++,然后首先判断D是否属于区间[S1,S2],如果属于,那么D即为答案,否则无异于以下两种情况:

(1)D中1的个数小于S1,对于这种情况,我们需要做的就是在增加D的同时,增加其二进制中1的个数,我们从其二进制的低位(假设最低位的标号为0)开始找,找到第一个0(假设该位的标号为i),将该位的0变为1(即令D+2^i),然后继续判断;

(2)D中1的个数大于S2,对于这种情况,同理,我们需要从低位开始找,找到第一个1,将这个1变为0(同样是加上2^i),直至D满足题意为止。

需要注意的,给出的D是int类型的,但比D大的数可能会超过int,我们用long long来存。

#include<iostream>
#include<cstdio>
using namespace std;typedef long long ll;
int main()
{int t,T = 1,s1,s2;ll d;scanf("%d",&t);while(t--){scanf("%I64d%d%d",&d,&s1,&s2);d++;while(true){ll m = d;int num = 0,cnt = 0,bri[35];while(m){if(m % 2){bri[num++] = 1;cnt++;}else bri[num++] = 0;m /= 2;}if(cnt < s1){int i = 0;for(;i < num; i++)if(bri[i] == 0) break;d = d + (1 << i);}else if(cnt > s2){int i = 0;for(; i < num; i++)if(bri[i] == 1) break;d = d + (1 << i);}else break;}printf("Case #%d: %lld\n",T++,d);}return 0;
}

hdu 5491 The Next(数学模拟)相关推荐

  1. HDU 5491 The Next

    Problem DescriptionLet L denote the number of 1s in integer D's binary representation. Given two int ...

  2. python配置文件解析_Python中配置文件解析模块-ConfigParser

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置). 配置文件的格式是: []包含的叫section, section 下有option=valu ...

  3. HDU 4389 - X mod f(x)

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...

  4. hdu 4389 囧,打表

    http://acm.hdu.edu.cn/showproblem.php?pid=4389 题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求. 囧,居然打表就能过 ...

  5. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  7. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  8. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

  9. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

最新文章

  1. android l是哪个版本,从Android L及更高版本开始,setMobileDataEnabled方法不再可调用...
  2. 用cmd运行python文件_怎么用cmd运行python文件
  3. Android5.1修改以太网MAC地址(SElinux)【转】
  4. 【Elasticsearch】第2篇:Elasticsearch分布式安装
  5. [原] Android持续优化 - 提高流畅度
  6. angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...
  7. Android入门之基本布局
  8. 中医:看脚十秒钟可知身体疾病
  9. LeetCode 409. 最长回文串(计数)
  10. linux 下的vi命令汇总
  11. 方法的重载与重写_我们不一样,不一样,重写与重载
  12. 【Hive】多字符分隔
  13. 率土之滨显示未选择服务器怎么办,率土之滨未转服,为什么要转服
  14. 无线定位服务器,[浅谈无线定位技术] 无线定位技术有哪些
  15. 使用codeigniter_使用CodeIgniter解开MVC
  16. 1959年第一台电子计算机,1、 一般认为,世界上第一台电子数字计算机诞生于______。 A.1946年 B.1952年 C.1959年 D.1962年...
  17. 微信公众平台开发【素材管理】上传临时素材
  18. 经典《像素鸟》游戏,难道你不想自己动手开发一个嘛(附源码免费下载)
  19. sql语句中as的意思是什么
  20. win系统下制作OS X(黑苹果)系统安装U盘制作的2个方法

热门文章

  1. java 集合数组初始化_Java用Arrays.asList初始化ArrayList实例方法
  2. cmd mysql 报错_客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案
  3. 企业联合体的形式_母公司是否可以用子公司资质进行投标,且不以联合体的形式?...
  4. 三大数据驱动机制,助力文娱企业打造高留存、高转化增长闭环
  5. 神策智能推荐 | 运营后台,你的智能分发“万能助手”
  6. 如何成为一名大数据工程师?
  7. Java并发编程(三)volatile域
  8. Mozilla网站安全分析工具Observatory已发布
  9. Ubuntu 下mysql service 启动问题
  10. Codeforces Beta Round #11 A. Increasing Sequence 贪心