code for 1 - 分治
2017-08-02 17:23:14
writer:pprp
题意:将n分解为n/2, n%2, n/2三部分,再将n/2分解。。得到一个序列只有0和1,给出[l, r]问l到r有几个1
题解:分治
代码及分析如下:
#include <iostream> using namespace std;
typedef __int64 ll; //L,R是查询区间,l,r是计算出的分解以后的长度
ll query(ll L ,ll R,ll l,ll r, ll n)
{
if(l == r)
return n; //分治
ll mid = (l+r)>>;
ll ans = ; //在左侧进行递归
if(L <= mid - )
ans += query(L,R,l,mid - ,n>>);
//在右侧进行递归查找
if(R >= mid + )
ans += query(L,R,mid + ,r,n>>);
//这个时候对mid进行处理,判断条件是mid在查询范围区间内
if(mid <= R && mid >= L)
ans += n%; return ans;
} //该函数是用来求分解n以后的位数
//也可以看出一个规律,某个数的展开以后的位数是刚好大于二次幂的值减去1,比如3的展开为4-1,4的展开为8-1
ll f(ll n)
{
if(n == || n == )
return ;
return * f(n >> ) + ;
} int main()
{
ll n;
ll l, r; cin >> n >> l >> r; cout << query(l,r,,f(n),n) << endl; return ;
}
code for 1 - 分治的更多相关文章
- B. Code For 1 分治
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- BZOJ 2244: [SDOI2011]拦截导弹 (CDQ分治 三维偏序 DP)
题意 略- 分析 就是求最长不上升子序列,坐标取一下反就是求最长不下降子序列,比较大小是二维(h,v)(h,v)(h,v)的比较.我们不看概率,先看第一问怎么求最长不降子序列.设f[i]f[i]f[i ...
- Codeforces 768B - Code For 1(分治思想)
768B - Code For 1 思路:类似于线段树的区间查询. 代码: #include<bits/stdc++.h> using namespace std; #define ll ...
- Code Chef TSUM2(动态凸包+点分治)
题面 传送门 题解 真是毒瘤随机化算法居然一分都不给 首先这种树上的题目一般想到的都是点分 我们考虑如何统计经过当前点的路径的贡献,设当前点\(u\)在序列中是第\(c\)个,那么一条路径的贡献就是 ...
- CodeForces768B:Code For 1 (分治)
Jon fought bravely to rescue the wildlings who were attacked by the white-walkers at Hardhome. On hi ...
- HDU5618 & CDQ分治
Description: 三维数点 Solution: 第一道cdq分治...感觉还是很显然的虽然题目不能再傻逼了... Code: /*=============================== ...
- 【Codeforces715C&716E】Digit Tree 数学 + 点分治
C. Digit Tree time limit per test:3 seconds memory limit per test:256 megabytes input:standard input ...
- 【BZOJ-4456】旅行者 分治 + 最短路
4456: [Zjoi2016]旅行者 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 254 Solved: 162[Submit][Status] ...
- 【BZOJ-3262】陌上花开 CDQ分治(3维偏序)
3262: 陌上花开 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1439 Solved: 648[Submit][Status][Discuss ...
随机推荐
- 【BZOJ4571】[Scoi2016]美味 主席树
[BZOJ4571][Scoi2016]美味 Description 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1≤i≤n).有 m 位顾客,第 i 位顾客的期望值 ...
- lookcss在深夜23:32开通
CSS在深夜23:32开通 话说 哥也耐不住寂寞搞个网站玩玩.顺便记录一些生活和学习和工作和思想和神马的点点滴滴~ 好吧 ~本来想起个名字叫涉趣.谁知道百度了一下,已经有人叫这个名字了,杯具,貌似还是 ...
- python抓取网页中的动态数据
一.概念 网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念,动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器 ...
- HTML5 云知梦自觉,记录知识 点
第一章(1--3) 文档类型:<!doctype html> 网站代码结构:<html> <head> <meta charset="UTF-8&q ...
- 1 duilib 自绘标题 最大化图标显示bug ----WindowImplBase的bug
窗口最大化之后有两个问题, 1.最大化按钮的样式还是没变,正确的样式应该是这样的 2.再次点击最大化按钮,不能还原到正常大小. 这个是WindowImplBase的bug,已经 ...
- 如何cancel掉慢查询
百度Elasticsearch-产品描述-介绍-百度云 https://cloud.baidu.com/doc/BES/FAQ.html#.E5.A6.82.E4.BD.95cancel.E6.8E. ...
- json/pickle/shelve/xml/configparser/hashlib/subprocess - 总结
序列化:序列化指把内存里的数据类型转成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes为什么要序列化:可以直接把内存数据(eg:10个列表,3个嵌套字典)存到硬盘 ...
- pycharm中选择python interpreter
pycharm中选择python interpreter pycharm中有两处地方需要选择python解释器: 一处是调试配置(edit configurations)处,这里选择python解释器 ...
- .net 存储过程中的 output参数取值问题
当存储过程中多个结果需要返回时经常需要用到output类型的参数,如果存储过程没有返回结果集只是输出output类型参数时使用如下代码: db.AddOutParameter(dbCmd, " ...
- 序列化组件之生成hypermedialink
一 生成hypermedialink(极少数) 组件 class BooksSerializer(serializers.ModelSerializer): name = serializers.C ...