jzoj3084
發現題目函數本質是:
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的更多相关文章
随机推荐
- 2017年多校get点
杨辉三角形变形??? lucas定理
- kbmmw 5.02发布
5.02.00 May 27 2017 Important notes (changes that may break existing code) ========================= ...
- ssh定义、操作
Secure Shell(縮寫为SSH)SSH為一项建立在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境. 传统的网络服务程序,如rsh.FTP.POP和Tel ...
- 44、WebStrom下载和破解
WebStrom下载地址: http://www.pc6.com/mac/112553.html WebStrom 2017激活破解(http://blog.csdn.net/it_talk/arti ...
- css中元素的位置
一.display 1.display:none 隐藏标签 2.display:inline 将块级标签改为内联标签 3.display:block 将内联标签改为块级标签 4.display:inl ...
- Java基本数据类型与包装类、字符串之间的转换
基本数据类型和包装类的转换:1.装箱:基本数据类型→对应包装类,可分为手动装箱和自动装箱.2.拆箱:包装类→对应基本数据类型,可分为手动拆箱和自动拆箱. 例子:手动装箱:Integer iObj=ne ...
- Java数据类型的转换
Java数据类型,从小到大排序 byte ,short ,int ,long ,float, double,char 1.小数据类型转换大的数据类型,自动转换 int a = 3; double b ...
- Android APP测试流程
一. Monkey测试(冒烟测试) 使用monkey测试工具进行如下操作: 1. APP的安装 2. APP随机操作测试(APP压力测试) 3. APP的卸载 二. 安装卸载测试 1. 使用测试真机进 ...
- python的6种基本数据类型--字典
python的6种基本数据类型--字典 字典 字典的定义与特性 字典是Python语言中唯一的映射类型. 定义:{key1:value1,key2:value2} 1.键与值用冒号":& ...
- Apache hadoop安装配置
1.网络中继更改问题 命令: vi /etc/sysconfig/network-scripts/ifcfg-eth0 需要修改的代码 DEVICE=eth0 HWADDR=00:0C:29:11 ...