CodeForces-768B-Code For 1+DFS类似线段树思想
2024-10-06 11:25:21
Code For 1
题意:对于一个n,可以将它分解为n/2,n%2,n/2三个数字,重复上述操作知道虽有值为1或0为止;
求L---R区间数列的和;
思路:首先画着画着可以发现这是一个类似线段数的结构,其长度len在每次n/2时,len=len*2+1;
有了长度和n就可以dfs查询区间的和了;
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
typedef long long ll; ll len=;
int dfs(ll n,ll L,ll R,ll l,ll r)
{
if(L>r||R<l||n==)return ;
if(n==)return ;
ll mid = L + (R-L)/;
return dfs(n/,L,mid-,l,r)+dfs(n%,mid,mid,l,r)+dfs(n/,mid+,R,l,r);
}
int main(){ ll n,l,r;
scanf("%lld%lld%lld",&n,&l,&r);
ll N = n;
while(N>)
{
len=len*+;
N/=;
}
printf("%d\n",dfs(n,,len,l,r));
return ;
}
最新文章
- nodejs中stream相关资料
- 利用innodb_force_recovery 解决WAMP MySQL服务器无法正常启动的问题
- oracle中的连接查询与合并查询总结
- FreeBSD_11-系统管理——{Part_6 - SYSCTL}
- EF容器---代理类对象
- android 学习随笔四(数据库存储)
- 【思路、优化】UVa 11491 - Erasing and Winning
- 安森美电量计采用内部电阻跟踪电流--电压HG-CVR
- 从文章";避免复制与粘贴";到文章";Extract Method";的反思(1)
- Codeforces 713 C Sonya and Problem Wihtout a Legend
- string string.h=cstring=str
- JIRA官方:为什么要用JIRA?
- Java实现打印日历的功能
- vue 学习笔记—路由篇
- 给iOS开发者的Android开发建议
- Android集成人脸识别demo分享
- this与$(this)对象
- 【未完成】[Spark SQL_2] 在 IDEA 中编写 Spark SQL 程序
- wamp设置自定义域名访问php网站
- 关于ArcGIS Server修改数据源是否对切片服务有影响