博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【找规律】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) B. Code For 1...
阅读量:5901 次
发布时间:2019-06-19

本文共 533 字,大约阅读时间需要 1 分钟。

观察一下,将整个过程写出来,会发现形成一棵满二叉树,每一层要么全是0,要么全是1。

输出的顺序是其中序遍历。

每一层的序号形成等差数列,就计算一下就可以出来每一层覆盖到的区间的左右端点。

复杂度O(log(n))。

#include
using namespace std;typedef long long ll;ll n,l,r;bool a[66];int e;int main(){// freopen("b.in","r",stdin); scanf("%I64d%I64d%I64d",&n,&l,&r); if(n==0) { puts("0"); return 0; } while(n) { a[++e]=n%2ll; n/=2ll; } ll j=1; int ans=0; for(int i=e;i;--i) { if(a[i]) { ll L=(l-j)/(j*2)+((l-j)%(j*2)!=0); if(l

转载于:https://www.cnblogs.com/autsky-jadek/p/6423618.html

你可能感兴趣的文章
vue-resource改造品牌列表案例
查看>>
内置对象Array的原型对象中添加方法
查看>>
12行代码的相关节点
查看>>
activemq的几种基本通信方式总结
查看>>
PLSQL 中异常处理
查看>>
Android事件总线(一)EventBus3.0用法全解析
查看>>
log4j使用细节
查看>>
5月8下午
查看>>
linux的文件权限
查看>>
JAVA-常量
查看>>
不要在using语句中“.NET研究”调用WCF服务
查看>>
Windows Phone 7 中的切换“.NET研究”应用
查看>>
浅谈大型网站动态应用系统架构,互联网营销
查看>>
一起谈.NET技术,混乱的MVC,.NET非要MVC不可么?
查看>>
POJ 1094 Sorting It All Out(拓扑排序)
查看>>
(转)mysql数据库表名批量修改大小写
查看>>
罗盘开放平台设计
查看>>
JAVA注解引发的思考
查看>>
1083 是否存在相等的差 (20 分)
查看>>
[java,2017-12-01] 播放音频文件
查看>>