【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

把序列生成的过程看成一颗树
会发现最后形成的是一颗二叉树。
每个二叉树上的节点就对应了序列中的一个数字。

如果我们把每个节点都往下投影的话。

(而且整棵树都是左右对称的。那么每个子树的根节点就是(l+r)/2了

就像是整个序列了。

(中序遍历

则我们可以用线段树求区间和的方法。

现在相当于告诉你1..n这个区间。

然后你要求l..r这个区间的和。

递归求就好。

【代码】

#include <bits/stdc++.h>
#define LL long long
using namespace std; LL n,l,r; LL dfs(LL n,LL L,LL R,LL l,LL r){
LL mid = (l+r)>>1;
LL temp = 0;
if (l==r) return n;
if (L<mid) temp+=dfs(n/2,L,R,l,mid-1);
if (mid<R) temp+=dfs(n/2,L,R,mid+1,r);
if(L<=mid && mid<=R) temp+=n%2;
return temp;
} int main()
{
cin >> n >> l >> r;
LL tot = 1,x = n;
while (x>1){
tot = tot + 1 + tot;
x>>=1;
}
cout<<dfs(n,l,r,1,tot)<<endl;
return 0;
}

最新文章

  1. 自制Azure中国版“加血包”
  2. 纯CSS3实现动态导航栏目
  3. contiki-事件调度
  4. OpenLayers 3 中Layers的相关知识
  5. Android安全开发之UXSS漏洞分析
  6. Error 18000 during outlook 2011 rebuild
  7. springmvc的3中路径风格
  8. UpdateData(false) and UpdateData(true)
  9. fuse挂载hdfs目录到linux本地
  10. SGU 143.Long Live the Queen(女王万岁)
  11. Kafka笔记--分布式环境搭建
  12. centos php nginx 添加到service
  13. HDU1494(dp)
  14. phalcon——调度控制器
  15. JS正则表达式检验数字或者带小数点的数字
  16. div介绍 盒子模型边框属性 CSS初始化 文字排版 边框调整 溢出
  17. windows server 2012 安装 VC14(VC2015) 安装失败解决方案
  18. WebClient 支持 gzip, deflate
  19. IDEA破解教程
  20. 奇怪吸引子---Halvorsen

热门文章

  1. js获取英文名字的首字母
  2. 利用Arcade表达式显示多行标签
  3. [Codeforces 115E]Linear Kingdom Races
  4. java实现支付宝电脑支付(servlet版本)
  5. 兴趣爱好-QQ的本地共享
  6. C#-委托 lambda 匿名方法 匿名类型
  7. Android圆形图片--自己定义控件
  8. m_Orchestrate learning system---十、解决bug最根本的操作是什么
  9. 接入gitment为hexo添加评论功能
  10. Ubuntu16.04+GTX 1080Ti+CUDA 8.0+cuDNN+Tesnorflow1.0深度学习服务器安装之路