任务查询系统(bzoj 3932)
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
/*
做完这道题,感觉自己对主席树的理解还是蒙蔽的
很显然,我们需要对于每个时间点维护一个线段树,修改时运用差分的原理,对于在x~y上修改就在x上+1,在y+1上-1, 这样就完美契合了主席树。
对于每棵线段树,从小到大维护优先级即可。
*/
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#define N 300010
#define lon long long
using namespace std;
lon n,m,lim,cnt,cn,to[N*],root[N*],son[N*][],w[N*],sum[N*];
struct node{
lon pos,v;
};node e[N*];
lon read(){
lon num=,flag=;char c=getchar();
while(c<''||c>''){if(c=='-')flag=-;c=getchar();}
while(c>=''&&c<=''){num=num*+c-'';c=getchar();}
return num*flag;
}
bool cmp(const node&s1,const node&s2){
return s1.pos<s2.pos;
}
void push_up(lon x){
w[x]=w[son[x][]]+w[son[x][]];
sum[x]=sum[son[x][]]+sum[son[x][]];
}
void insert(lon x,lon &y,lon l,lon r,lon v){
y=++cn;
if(l==r){
if(v>) w[y]=w[x]+;
else w[y]=w[x]-;
sum[y]=sum[x]+v;
return;
}
son[y][]=son[x][];
son[y][]=son[x][];
lon mid=l+r>>;
if(abs(v)<=mid) insert(son[x][],son[y][],l,mid,v);
else insert(son[x][],son[y][],mid+,r,v);
push_up(y);
}
lon query(lon R,lon k){
lon x=root[R];
if(w[x]<=k)return sum[x];
lon l=,r=lim,ans=;
while(l<r){
lon mid=l+r>>;
if(w[son[x][]]>=k){
r=mid;
x=son[x][];
}
else {
ans+=sum[son[x][]];
k-=w[son[x][]];
l=mid+;
x=son[x][];
}
if(l>=r) return ans+sum[x]/w[x]*k;
}
return ans;
}
int main(){
n=read();m=read();
for(lon i=;i<=n;i++){
lon x=read(),y=read(),p=read();
e[++cnt].pos=x;e[cnt].v=p;
e[++cnt].pos=y+;e[cnt].v=-p;
lim=max(lim,p);
}
sort(e+,e+cnt+,cmp);
for(lon i=;i<=cnt;i++) insert(root[i-],root[i],,lim,e[i].v);
for(lon i=cnt;i>=;i--)
if(e[i].pos!=e[i+].pos)
to[e[i].pos]=i;
for(lon i=;i<=n;i++)
if(!to[i])to[i]=to[i-];
lon pre=;
for(lon i=;i<=m;i++){
lon x=read(),a=read(),b=read(),c=read();
lon k=(a*pre+b)%c+;
pre=query(to[x],k);
printf("%lld\n",pre);
}
return ;
}
任务查询系统(bzoj 3932)的更多相关文章
- 主席树||可持久化线段树||离散化||[CQOI2015]任务查询系统||BZOJ 3932||Luogu P3168
题目: [CQOI2015]任务查询系统 题解: 是一道很经典的题目.大体思路是抓优先级来当下标做主席树,用时刻作为主席树的版本.然而优先级范围到1e7去了,就离散化一遍.然后把每个事件的开始(s). ...
- 2018.06.30 BZOJ 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管理 ...
- bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管 ...
- 3932: [CQOI2015]任务查询系统
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2559 Solved: 819[Submit][Sta ...
- BZOJ3932: [CQOI2015]任务查询系统 主席树
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 4869 Solved: 1652[Submit][St ...
- BZOJ3932: [CQOI2015]任务查询系统
传送门 真不知道我没学主席树之前是有什么勇气说自己高级数据结构以及学的七七八八了. 这道题应该也是算是主席树的经典运用. 刚开始脑抽了,想把(S,E,P)的处理直接在线用树状数组xjb搞搞算了.写完后 ...
- 【BZOJ3932】任务查询系统(主席树)
[BZOJ3923]任务查询系统(主席树) 题面 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei ...
- BZOJ_3932_[CQOI2015]任务查询系统_主席树
BZOJ_3932_[CQOI2015]任务查询系统_主席树 题意: 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,P ...
- P3168 [CQOI2015]任务查询系统
题目地址:P3168 [CQOI2015]任务查询系统 主席树的模板题 更模板的在这儿:P3834 [模板]可持久化线段树 1(主席树) 形象的说,P3834是"单点修改,区间查询" ...
- bzoj3932 / P3168 [CQOI2015]任务查询系统(主席树+差分)
P3168 [CQOI2015]任务查询系统 看到第k小,就是主席树辣 对于每一段任务(a,b,k),在版本a的主席树+k,版本b+1的主席树-k 同一时间可能有多次修改,所以开个vector存操作, ...
随机推荐
- VS配置本地IIS以域名访问
1.IIS下配置自己的网站,添加主机名 2.修改hosts文件(C://Windows/System32/drivers/etc) 3.VS中配置项目Web服务器(选择外部主机)
- C#的WinForm中Label透明一例
很久之前開發的一個MIS系統,里面有個登錄界面,採用了PictureBox做背景,上面放了一些Label,試了很多方面不能實現透明,如下圖: 這次重新啟用該系統,看了一下原因,很簡單,原來Label的 ...
- Android iconfont字体图标的使用
1.首先,进入阿里的矢量图标库,在这个图标库里面可以找到很多图片资源,当然了需要登录才能下载或者使用,用GitHub账号或者新浪微博账号登录都可以 2.登录以后,可以搜索自己需要的资源,然后直接下载使 ...
- Android开发二维码之坑
之前一直做的是.NET开发用的是C#语言,近段时间由于做一个APP这才用上了java,在二维码扫描整合到APP里面遇到扫描二维码之后没有返回值,经过反复的尝试最后终于拿到了返回值,之后觉得很有必要记录 ...
- BottomNavigationBar底部导航条用法
先来张效果图 接下来是实现过程 1.加入依赖 compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0' 2.xml布局 fragment ...
- /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
[root@localhost nagios]# make install-webconf/usr/bin/install -c -m 644 sample-config/httpd.conf /et ...
- mysql use index() 优化查询
mysql use index() 优化查询 FORCE INDEX/IGNORE INDEX 的语法: SELECT *** FROM TABLE [{USE|IGNORE|FORCE} INDEX ...
- 《深入理解Java虚拟机》读书笔记
堆分配参数: -XX:+PrintGC 使用该参数,虚拟机启动后,只要遇到GC就会打印日志: -XX:+UseSerialGC 配置串行回收器: -XX:+PrintGCDeltails 可以查看详细 ...
- C# 图片打印杂谈
日常开头水一下,看了下上次博客,一年零八天了,啧啧,奢侈. 最近这个工作挺满意的,是我想要的发展方向,后续要做机器学习,现在得先把公司之前堆积的问题解决了. 谈人生到此结束,还是说正题吧.(感觉这标题 ...
- ldap_modify: No such object (32) matched DN: cn=config
centos 6.9 部署 kerbors ldap 报错 [root@hadoop data]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ld ...