hdu 5491 The Next(数学模拟)
题目链接: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(数学模拟)相关推荐
- HDU 5491 The Next
Problem DescriptionLet L denote the number of 1s in integer D's binary representation. Given two int ...
- python配置文件解析_Python中配置文件解析模块-ConfigParser
Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置). 配置文件的格式是: []包含的叫section, section 下有option=valu ...
- HDU 4389 - X mod f(x)
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4389 2012多校,第9场,1010 . 问题是,询问区间内 存在多少个 哈沙德数(Harshad ...
- hdu 4389 囧,打表
http://acm.hdu.edu.cn/showproblem.php?pid=4389 题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求. 囧,居然打表就能过 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
最新文章
- android l是哪个版本,从Android L及更高版本开始,setMobileDataEnabled方法不再可调用...
- 用cmd运行python文件_怎么用cmd运行python文件
- Android5.1修改以太网MAC地址(SElinux)【转】
- 【Elasticsearch】第2篇:Elasticsearch分布式安装
- [原] Android持续优化 - 提高流畅度
- angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...
- Android入门之基本布局
- 中医:看脚十秒钟可知身体疾病
- LeetCode 409. 最长回文串(计数)
- linux 下的vi命令汇总
- 方法的重载与重写_我们不一样,不一样,重写与重载
- 【Hive】多字符分隔
- 率土之滨显示未选择服务器怎么办,率土之滨未转服,为什么要转服
- 无线定位服务器,[浅谈无线定位技术] 无线定位技术有哪些
- 使用codeigniter_使用CodeIgniter解开MVC
- 1959年第一台电子计算机,1、 一般认为,世界上第一台电子数字计算机诞生于______。 A.1946年 B.1952年 C.1959年 D.1962年...
- 微信公众平台开发【素材管理】上传临时素材
- 经典《像素鸟》游戏,难道你不想自己动手开发一个嘛(附源码免费下载)
- sql语句中as的意思是什么
- win系统下制作OS X(黑苹果)系统安装U盘制作的2个方法
热门文章
- java 集合数组初始化_Java用Arrays.asList初始化ArrayList实例方法
- cmd mysql 报错_客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案
- 企业联合体的形式_母公司是否可以用子公司资质进行投标,且不以联合体的形式?...
- 三大数据驱动机制,助力文娱企业打造高留存、高转化增长闭环
- 神策智能推荐 | 运营后台,你的智能分发“万能助手”
- 如何成为一名大数据工程师?
- Java并发编程(三)volatile域
- Mozilla网站安全分析工具Observatory已发布
- Ubuntu 下mysql service 启动问题
- Codeforces Beta Round #11 A. Increasing Sequence 贪心