發現題目函數本質是:

1.將某一數x的末尾1去掉

2.不斷將這個數/2,直到遇到新的1

我們發現一個數z可以用y步到達數x,記x二進制長度為c,分2種情況討論:

1.x是奇數,則z的前c個二進制數必須與x相等

2.x是偶數,則z的第c位可以任意選,所以只要c-1位相等即可

我們弄出答案區間再統計答案即可

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll k,a,b;
ll ct(ll x){
	ll c=1,kk=k,rr=0;
	while(1){
		ll l=kk,r=kk+c-1;
		if(r<=x)rr+=r-l+1;
		if(x<l)break;
		if(l<=x&&x<=r){
			rr+=x-l+1;
			break;
		}
		kk<<=1;
		c<<=1;
	}
	if(k%2==0)rr*=2;
	return rr;
}
int main(){
	scanf("%lld%lld%lld",&k,&a,&b);
	if(!k){
		printf("%lld",b-a+1);
		return 0;
	}
	printf("%lld",ct(b)-ct(a-1));
}

jzoj3084的更多相关文章

随机推荐

  1. 可以用WebRTC来做视频直播吗?

    https://www.zhihu.com/question/25497090   作者:韦易笑链接:https://www.zhihu.com/question/25497090/answer/72 ...

  2. 5. Longest Palindromic Substring - Unsolved

    https://leetcode.com/problems/longest-palindromic-substring/#/description Given a string s, find the ...

  3. ORA-38301:can not perform DDL/DML over objects in Recycle Bin

    一个智障操作,drop一个用户,下面的东西比较多,删得比较慢,然后shell突然关了. 就导致了,删不掉,又不能创建新的用户.出版本要得比较急,就先创建新的用户测试去了. 今天要弄个东西,又想起这个事 ...

  4. WebSocket的原理与优缺点

    websocket 是长连接,受网络限制比较大,需要处理好重连,比如用户进电梯或电信用户打个电话网断了,这时候就需要重连,如果 ws 一直重连不上,有些较复杂的业务方会不愿意的,是不是还要搞个 htt ...

  5. this指针和const成员函数

    1.this指针 1)this指针是成员函数的隐式参数,成员函数通过this指针来访问调用它自己的那个对象,成员函数对各成员的访问均通过this进行 2)当某个对象调用它的成员函数时,编译器会把这个对 ...

  6. 更改Ubuntu默认python版本的两种方法python-> Anaconda

    当你安装 Debian Linux 时,安装过程有可能同时为你提供多个可用的 Python 版本,因此系统中会存在多个 Python 的可执行二进制文件.一般Ubuntu默认的Python版本都为2. ...

  7. 关于DOM级别的一些问题,DOM0,DOM1,DOM2

    之前看书没太注意这个问题,直到我今天看书看到一个DOM0级,于是我就在群里问了下各个级别的意思区别.. 首先我们的确定标准了是没有DOM0级的.在平时阅读的时候可能会读到DOM0级(DOM Level ...

  8. c语言结构体链表

    原文链接:http://zhina123.blog.163.com/blog/static/417895782012106036289/ 引用自身的结构体,一个结构体中有一个或多个成员的基类型就是本结 ...

  9. 01-Javascript简介

    Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) JavaScript的组成 Java ...

  10. JavaScript相关基础知识点

    JavaScript简介: JavaScript是脚本语言,是一种轻量级的编程语言,是可插入 HTML 页面的编程代码,插入 HTML 页面后,可由所有的现代浏览器执行. JavaScript使用: ...