题目链接:http://codeforces.com/gym/101128

题目大意:给你一个区间[x,y],找出这个区间有多少个seldom的数字。

seldom的数字定义如下:该数值的二进制数字符合如下条件ABAB...ABAB 或者 ABABA....BA,其中A表示连续的1的个数,B表示连续的0的个数。

思路:因为长度只有63,本来以为是数位dp的,想了想直接暴力预处理就好了

//看看会不会爆int!数组会不会少了一维!
//取物问题一定要小心先手胜利的条件
#include <bits/stdc++.h>
using namespace std;
#pragma comment(linker,"/STACK:102400000,102400000")
#define LL long long
#define ALL(a) a.begin(), a.end()
#define pb push_back
#define mk make_pair
#define fi first
#define se second
#define haha printf("haha\n")
LL x, y;
vector<LL> ve; void solve(LL tmp, LL tmp1, LL i, LL j, int len){
int cnt = ;
while (true){
if (cnt % == ){
cnt++;
if (len + i > ) break;
len += i;
tmp = tmp << i; tmp += tmp1;
ve.pb(tmp);
}
else {
cnt++;
if (len + j > ) break;
len += j;
tmp = tmp << j;
ve.pb(tmp);
}
//printf("tmp = %lld\n", tmp);
}
} void init(){
for (int i = ; i <= ; i++){///这个是1的东西
LL tmp1 = ;
for (int f = ; f < i; f++){
tmp1 |= (1LL << f);
}
ve.pb(tmp1);
for (int j = ; j <= ; j++){///这个是0的东西
if (i + j > ) break;
LL tmp = tmp1 << j;
ve.pb(tmp);
solve(tmp, tmp1, i, j, i + j);
}
}
sort(ALL(ve));
} int main(){
init();
while (scanf("%lld%lld", &x, &y) == ){
int lb = lower_bound(ve.begin(), ve.end(), x) - ve.begin();
int rb = upper_bound(ve.begin(), ve.end(), y) - ve.begin();
printf("%d\n", rb - lb);
}
return ;
}

最新文章

  1. 常用 Java 静态代码分析工具的分析与比较
  2. kibana去掉丑陋的basic验证框,用自定义验证代替。
  3. 用Windows Server 2003搭建企业内部邮件服务器
  4. 如何将你的程序打包成ipa
  5. css 实现进度条
  6. 【opengl】OpenGL中三维物体显示在二维屏幕上显示的变换过程
  7. oracle 使用技巧
  8. centos7下编译安装mysql
  9. Linux CentOS 7 防火墙/端口设置
  10. oracle11G r2 静默安装单实例(待优化版)
  11. Redis 实践1- redis介绍和安装
  12. Linux-文件管理
  13. LEDAPS1.3.0版本移植到windows平台----HuPm参数初始化模块
  14. iptables命令提取总结,包含扩展模块&lt;取自朱双印博客&gt;
  15. celery任务进程关闭
  16. 如何判断是否为同一个App,Ionic3如何修改包名
  17. article2pdf (Wordpress plug-in) Multiple vulnerabilities(CVE-2019-1000031, CVE-2019-1010257)
  18. pythonのsqlalchemy简单查询
  19. IE浏览器中overflow:hidden无效,内层元素超出外层div的解决方法
  20. 为anaconda的jupyter notebook设置初始化目录

热门文章

  1. PSP Daily软件Alpha版本——基于spec评论
  2. &quot;群英队&quot;电梯演讲
  3. Right-BICEP测试四则运算2
  4. 让程序运行更加面向用户——电梯V2.1
  5. 第一阶段android学习笔记
  6. sql主表分页查询关联子表取任意一条高效方案
  7. 第八次JAVA语言笔记
  8. Java String简单知识点总结
  9. utuntu下安装pip&amp;pip3
  10. ARP(Adress Resolution Protocol): 地址解析协议