BZOJ3932: [CQOI2015]任务查询系统 主席树
3932: [CQOI2015]任务查询系统
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 4869 Solved: 1652
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 6
2 3 3
1 3 2
3 3 4
3 1 3 2
1 1 3 4
2 2 4 3
Sample Output
8
11
HINT
Source
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define _mp make_pair
#define ldb long double
using namespace std;
const int maxn=2e5+100;
inline ll read()
{
ll x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
struct node
{
ll l,r;
ll sum,v;
}no[maxn*40];
struct sr
{
int x,num,tp,val;
}sf[maxn*2];
int id[maxn],nid[maxn],pri[maxn];
ll root[maxn<<1];
int cnt=0,tot=0,n,m;
bool cmp1( int a, int b){
return pri[a]<pri[b];
}
bool cmp2(const sr& a,const sr& b)
{
return a.x<b.x;
}
void insert(ll& now,int l,int r,int pl,int val,int type)
{
no[++cnt]=no[now];
now=cnt;
no[now].v+=type;
no[now].sum+= val;
if(l==r)return;
int mid=(l+r)>>1;
if(pl<=mid)insert(no[now].l,l,mid,pl,val,type);
else if(pl>mid)insert(no[now].r,mid+1,r,pl,val,type);
}
ll query(ll x,int l,int r,ll k)
{
if(l==r)
{
return no[x].sum;
}
int mid=(l+r)>>1;
ll tmp=0;
ll ss=no[no[x].l].v;
if(ss>=k)
{
tmp+=query(no[x].l,l,mid,k);
}
else
{
tmp+=no[no[x].l].sum;
tmp+=query(no[x].r,mid+1,r,k-ss);
}
return tmp;
}
int pp,qq,rr,ss;
int main()
{
n=read();m=read();
for(int i=1;i<=n;i++)
{
pp=read();qq=read();rr=read();
pri[i]=rr;id[i]=i;
sf[++tot].x=pp;sf[tot].val=rr;sf[tot].tp=1;
sf[++tot].x=qq+1;sf[tot].val=-rr;sf[tot].tp=-1;
}
sort(id+1,id+1+n,cmp1);
for(int i=1;i<=n;i++)nid[id[i]] =i;
// for(int i=1;i<=n;i++)cout<<nid[i]<<endl;
for(int i=1;i<=tot;i+=2)
{
sf[i].num=sf[i+1].num=nid[(i+1)/2];
}
sort(sf+1,sf+1+tot,cmp2);
int j=1;
for(int i=1;i<=m;i++)
{
root[i]=root[i-1];
while(sf[j].x==i)
{
insert(root[i],1,n,sf[j].num,sf[j].val,sf[j].tp);
j++;
}
}
//cout<<cnt<<endl;
ll pre=1;
for(int i=1;i<=m;i++)
{
ss=read();pp=read();qq=read();rr=read();
ll tmp=1+(pp*pre+qq)%rr;
//cout<<tmp<<endl;
pre=query(root[ss],1,n,tmp);
printf("%lld\n",pre);
}
}
BZOJ3932: [CQOI2015]任务查询系统 主席树的更多相关文章
- BZOJ3932[CQOI2015]任务查询系统——主席树
题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第E ...
- BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化
记录下自己写错的地方吧 1. 区间可能有重复 2. 没有出现的坐标也要计入version (因为询问里可能会有) #include <bits/stdc++.h> using namesp ...
- 【BZOJ3932】[CQOI2015]任务查询系统 主席树
[BZOJ3932][CQOI2015]任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si, ...
- [CQOI2015]任务查询系统 主席树
[CQOI2015]任务查询系统 LG传送门 以前还没见过主席树的这种写法. 考虑使用差分的思想处理每一个任务,然后所有的东西就都能顺理成章地用主席树维护了,查询的时候和平时的主席树有一点不同,详见代 ...
- bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管 ...
- 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]
题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...
- BZOJ 3932: [CQOI2015]任务查询系统 [主席树]
传送门 题意: 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi 调度系统会经常向查询系统询问,第Xi ...
- BZOJ.3932.[CQOI2015]任务查询系统(主席树 差分)
题目链接 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了..). 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的. 所以离散化.按时间排序,把操作拆成单点加和减即可. ...
- BZOJ 3932: [CQOI2015]任务查询系统 | 主席树练习题
题目: 洛谷也能评测 题解: De了好长时间BUG发现是自己sort前面有一行for没删,气死. 题目询问第x秒时候前k小的P值之和. 朴素想法: 我们可以把P值离散化,然后对于每个时刻建一棵定义域是 ...
随机推荐
- C#复习笔记(4)--C#3:革新写代码的方式(用智能的编译器来防错)
用智能的编译器来防错 本章的主要内容: 自动实现的属性:编写由字段直接支持的简单属性, 不再显得臃肿不堪: 隐式类型的局部变量:根据初始值推断类型,简化局部变量的声明: 对象和集合初始化程序:用一个表 ...
- 对于vue和react“页面间”传递数据的理解误区
前言 如果我们想要实现多个标签页之间的通信,可以使用localStorage.cookie等,但是能不能用vue或react呢? 结论 答案是NO,因为vue和react虽然可以在“多个”页面之间传递 ...
- MyEclipse配置tomcat报错 - java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor version 51.0
1 开发Servlet程序时,MyEclipse配置好tomcat与JDK之后,启动时控制台报下列错误: 1 java.lang.UnsupportedClassVersionError: org/a ...
- Azure系列2.1.7 —— BlobRequestOptions
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- csrf补充
问csrftoken在Django里面是基于什么实现的?------>中间件. 如果是Django表示每次发请求过来的时候,要检验有没有带随机字符串.当在执行视图函数之前,前面还有一道屏障,这个 ...
- linux pstree命令
pstree命令可以使进程以tree的形式显示 pstree -ssystemd─┬─UVPHostd───6*[{UVPHostd}] ├─acpid ├─2*[agetty] ├─crond ├─ ...
- 思维导图,UML图,程序流程图制作从入门到精通
工具: https://www.processon.com/ 第一 用例图 第二 时序图 第三 流程图
- 错误模块名称: KERNELBASE.dll错误
今天在部署一个C/S程序的时候出了bug,日志都没有记载:本地调试当然是没问题的,所以不是代码问题,百度之发现KERNELBASE.dll这个文章说的比较靠谱,仔细研究了自己的配置文件后,果然是配置文 ...
- export default用法
// test.js export default { name: 'zs', age: 20 } 或是 // test.js var info = { name: 'zs', age: 20 } e ...
- Js--String、Date、Array对象
/* * String 对象 属性 length 方法 */ //String的length属性 var strL = "abcde"; document.write(" ...