發現題目函數本質是:

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. 华为QOS原理及配置

    http://www.tudou.com/programs/view/GWCiHfWC9FI/ FLASH : http://www.tudou.com/v/GWCiHfWC9FI/&reso ...

  2. MVVM Light 笔记

    4.关于子视图, MVVMLight Using Two Views:http://www.codeproject.com/Articles/323187/MVVMLight-Using-Two-Vi ...

  3. 【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版

    安装环境/工具 1.Linux(CentOS 7.4版) 2.mysql-8.0.12-el7-x86_64.tar.gz 安装步骤 参考:https://dev.mysql.com/doc/refm ...

  4. java web 大总结

    C/s架构:        socket.serversocket.awt/swing做一个客户端软件        建好socket连接后,通过IO流交换数据.数据格式由各个开发者自己确定,B/C架 ...

  5. SPRING 事务管理说明

    spring 事务管理是通过AOP拦截指定的方法,进行事务管理. 事务配置 <aop:config proxy-target-class="true"> <aop ...

  6. dj django与ajax交互

    Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...

  7. HDU 5663 Hillan and the girl (莫比乌斯反演 + 分块)

    题意:给定n,m,求,其中F(x)=0,,如果x是完全平方数,否则是1. 析: 由于按照题意的F,不好筛选,所以我们反过来,F(x),x是平方数,就是1,否则是0. 这个是可以预处理出来的,可以用筛选 ...

  8. Web结构组件

    一.Web结构组件 1.代理 位于客户端和服务器之间的HTTP实体,接收客户端的所有HTTP请求,并将这些请求转发给HTTP服务器. 2.缓存 HTTP的仓库,使常用的页面的副本可以保存在离客户端更近 ...

  9. Windows下Django环境搭建

    总体示意图如下:  Windows下搭建Django环境 1.安装Python版本 2.安装pip工具,一般Python安装都会自动会有这个,在你python安装命令下Scripts文件夹下 3.dj ...

  10. pickle 继承

    1.什么是方法,什么是函数 class Foo: def chi(self): print("我是吃") @staticmethod def static_method(): pa ...