【Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) B】 Code For 1
2024-08-31 12:39:30
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
把序列生成的过程看成一颗树
会发现最后形成的是一颗二叉树。
每个二叉树上的节点就对应了序列中的一个数字。
如果我们把每个节点都往下投影的话。
(而且整棵树都是左右对称的。那么每个子树的根节点就是(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;
}
最新文章
- 自制Azure中国版“加血包”
- 纯CSS3实现动态导航栏目
- contiki-事件调度
- OpenLayers 3 中Layers的相关知识
- Android安全开发之UXSS漏洞分析
- Error 18000 during outlook 2011 rebuild
- springmvc的3中路径风格
- UpdateData(false) and UpdateData(true)
- fuse挂载hdfs目录到linux本地
- SGU 143.Long Live the Queen(女王万岁)
- Kafka笔记--分布式环境搭建
- centos php nginx 添加到service
- HDU1494(dp)
- phalcon——调度控制器
- JS正则表达式检验数字或者带小数点的数字
- div介绍 盒子模型边框属性 CSS初始化 文字排版 边框调整 溢出
- windows server 2012 安装 VC14(VC2015) 安装失败解决方案
- WebClient 支持 gzip, deflate
- IDEA破解教程
- 奇怪吸引子---Halvorsen
热门文章
- js获取英文名字的首字母
- 利用Arcade表达式显示多行标签
- [Codeforces 115E]Linear Kingdom Races
- java实现支付宝电脑支付(servlet版本)
- 兴趣爱好-QQ的本地共享
- C#-委托 lambda 匿名方法 匿名类型
- Android圆形图片--自己定义控件
- m_Orchestrate learning system---十、解决bug最根本的操作是什么
- 接入gitment为hexo添加评论功能
- Ubuntu16.04+GTX 1080Ti+CUDA 8.0+cuDNN+Tesnorflow1.0深度学习服务器安装之路