洛谷P3567 [POI2014]KUR-Couriers 主席树
挺裸的,没啥可讲的。
不带修改的主席树裸题
Code:
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 500000 + 5;
int n, m ,root[maxn];
struct Chair_Tree{
int cnt_Tree;
int lson[maxn * 50], rson[maxn * 50], sumv[maxn * 50];
void build(int l, int r, int &o){
if(l > r) return ;
o = ++cnt_Tree;
if(l == r) return ;
int mid = (l + r) >> 1;
build(l, mid, lson[o]);
build(mid + 1, r, rson[o]);
}
int insert(int l, int r, int pos, int o){
int oo = ++cnt_Tree;
lson[oo] = lson[o], rson[oo] = rson[o], sumv[oo] = sumv[o] + 1;
if(l == r) return oo;
int mid = (l + r) >> 1;
if(pos <= mid) lson[oo] = insert(l, mid, pos, lson[o]);
else rson[oo] = insert(mid + 1, r, pos, rson[o]);
return oo;
}
int query(int l, int r, int k, int pre_o, int cur_o){
if(l == r) return l;
int lsum = sumv[lson[cur_o]] - sumv[lson[pre_o]];
int cur_sum = sumv[cur_o] - sumv[pre_o];
int mid = (l + r) >> 1;
if(k <= lsum) return query(l, mid, k, lson[pre_o], lson[cur_o]);
else if(cur_sum - lsum >= k) return query(mid + 1, r, k, rson[pre_o], rson[cur_o]);
else return 0;
}
}T;
int main(){
scanf("%d%d",&n,&m);
T.build(1, n, root[0]);
for(int i = 1;i <= n; ++i)
{
int cur_num;
scanf("%d",&cur_num);
root[i] = T.insert(1, n, cur_num, root[i - 1]);
}
while(m--){
int l, r, k;
scanf("%d%d",&l,&r);
k = (r - l + 1)/2 + 1;
printf("%d\n", T.query(1, n, k, root[l - 1], root[r]));
}
return 0;
}
洛谷P3567 [POI2014]KUR-Couriers 主席树的更多相关文章
- 2018.09.14 洛谷P3567 [POI2014]KUR-Couriers(主席树)
传送门 简单主席树啊. 但听说有随机算法可以秒掉%%%(本蒟蒻并不会) 直接维护值域内所有数的出现次数之和. 当这个值不大于区间总长度的一半时显然不存在合法的数. 这样在主席树上二分查值就行了. 代码 ...
- 洛谷P3567[POI2014]KUR-Couriers(主席树+二分)
题意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 题解: 最近比赛太多,都没时间切水题了,刚好日推了道主席树裸题,就写了一下 然后 WA80 WA80 WA0 WA90 WA80 ?? ...
- 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
洛谷题目传送门 YCB巨佬对此题有详细的讲解.%YCB%请点这里 思路分析 不能套用静态主席树的方法了.因为的\(N\)个线段树相互纠缠,一旦改了一个点,整个主席树统统都要改一遍...... 话说我真 ...
- 洛谷P4587 神秘数 [FJOI2016] 主席树
正解:主席树 解题报告: 先放下传送门QAQ 首先可以先思考如果只有一组询问,怎么解决 可以这么想,最开始一个数也麻油的时候能表示的最大的数是0嘛 然后先排个序,按顺序每次新加入一个数x,设加入这个数 ...
- 2018.07.07 洛谷 P3939 数颜色(主席树)
P3939 数颜色 题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的.每只兔子都有一种颜色,不 ...
- 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]
题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...
- 洛谷P4559 [JSOI2018]列队(主席树)
题面 传送门 题解 首先考虑一个贪心,我们把所有的人按\(a_i\)排个序,那么排序后的第一个人到\(k\),第二个人到\(k+1\),...,第\(i\)个人到\(k+i-1\),易证这样一定是最优 ...
- [洛谷P3567][POI2014]KUR-Couriers
题目大意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半.有,输出这个数,否则输出$0$ 题解:主席树,查询区间第$\bigg\lfloor\dfrac{len+1}{2}\bigg\rf ...
- 洛谷P3293 [SCOI2016]美味(主席树)
传送门 据说这题做法叫做可持久化trie树?(然而我并不会) 首先考虑一下贪心,从高位到低位枚举,如果能选1肯定比选0优 假设已经处理到了$b$的第$i$位,为1(为0的话同理就不说了) 那么只有当$ ...
随机推荐
- Hibernate框架学习(七)——多对多关系
一.关系表达 1.表中的表达 2.实体中的表达 3.orm元数据中的表达 在User.hbm.xml中添加: 在Role.hbm.xml中添加(与上相反): 二.操作关联属性 1.保存员工及角色 pu ...
- The Vertica Analytic Database:C-Store 7 Years Later笔记
1.设计目标 Vertica数据库可以说是7年之后的C-Store,在2012年发表的这样一篇论文,描述了现在基于C-Store的一部分改进,当然,Vertica借鉴了很多C-Store的思想,但并非 ...
- 页面定制CSS代码初探(二):自定义h2标题样式 添加阴影 添加底色 等
故事的开始 先说一下<h2></h2>原先默认是空白的,很难看 然后今天无意中看到一个博友的标题很好看啊,一直就想要这种效果有没有? 好的东西自然要拿过来啦 通过审查元素,果然 ...
- Kattis - Speed Limit
Speed Limit Bill and Ted are taking a road trip. But the odometer in their car is broken, so they do ...
- java文件名与class关系
class与文件名没有必要关系但是public class是要绝对保持一致 例如:class test{ public static void main(String args[]){ System. ...
- zabbix-server端监控MySQL服务
Zabbix 监控MySQL数据库 为server.zabbix,com 添加服务模块 创建MySQL服务图形 Server.zabbix.com 服务器操作 [root@server ~]# cd ...
- Java压缩图片
阅读目录 前言 压缩的要求 实现 优点 其他功能 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的 ...
- No content type provided for validation of a content model---WebLogic问题
一个web项目,复制到Weblogic domain下的autodeploy目录下,可是从BEA管理控制台中的Deployments下却找不到该项目,奇怪了,这个以前拷过来就可以用的啊?! 查看控制台 ...
- BZOJ 1878 HH的项链 (树状数组+离线)
题目大意:给你一个序列,求某区间出现不同的数的个数. 貌似离线树状数组是最好的解法 先把所有询问挂在它们询问的右端点上 然后从头到尾遍历这个序列,记录这个位置的值上一次出现的位置 那么,当遍历到第i位 ...
- Proxifier安装与使用
Proxifier安装与使用 1.Proxifier官网可能打不开,这是一个下载地址,提取码为p1l8. 用户名随意填 注册码下边 5EZ8G-C3WL5-B56YG-SCXM9-6QZAP G3ZC ...