题链:

https://www.luogu.org/problemnew/show/P3168
题解:

主席树

强制在线?
那就直接对每一个前缀时间建一个线段树(可持久化线段树),线段树维护优先度权值。

代码:

#include<bits/stdc++.h>
#define MAXN 100005
using namespace std;
int tmp[MAXN];
int N,M,tnt;
long long pre=1;
struct Event{
int ent;
int p[MAXN*2],k[MAXN*2],nxt[MAXN*2],head[MAXN];
Event():ent(2){}
void Add(int _t,int _p,int _k){
p[ent]=_p; k[ent]=_k; nxt[ent]=head[_t]; head[_t]=ent++;
}
}E;
struct SGT{//可持久化线段树(主席树),单修,区查???
int idnt,root[MAXN];
int ls[MAXN*18*2],rs[MAXN*18*2],size[MAXN*18*2];
long long sum[MAXN*18*2];
void Pushup(int u){
size[u]=size[ls[u]]+size[rs[u]];
sum[u]=sum[ls[u]]+sum[rs[u]];
}
void Modify(int v,int &u,int l,int r,int p,int k){
u=++idnt; ls[u]=ls[v]; rs[u]=rs[v]; sum[u]=sum[v]; size[u]=size[v];
if(l==r) return (void)(sum[u]+=k*tmp[l],size[u]+=k);
int mid=(l+r)>>1;
if(p<=mid) Modify(ls[v],ls[u],l,mid,p,k);
else Modify(rs[v],rs[u],mid+1,r,p,k);
Pushup(u);
}
long long Query(int u,int l,int r,int k){//先特判k是否太大
if(l==r){return 1ll*k*tmp[l];}
int mid=(l+r)>>1;
if(size[ls[u]]>=k) return Query(ls[u],l,mid,k);
long long ret=sum[ls[u]];
ret+=Query(rs[u],mid+1,r,k-size[ls[u]]);
return ret;
}
}DT;
int main(){
scanf("%d%d",&M,&N);
int a,b,c,x,k;
for(int i=1;i<=M;i++){
scanf("%d%d%d",&a,&b,&c);
E.Add(a,c,1); E.Add(b+1,c,-1);
tmp[++tnt]=c;
}
sort(tmp+1,tmp+tnt+1);
tnt=unique(tmp+1,tmp+tnt+1)-tmp-1;
for(int i=1,last=0;i<=N;i++){
DT.root[i]=last;
for(int e=E.head[i];e;e=E.nxt[e]){
E.p[e]=lower_bound(tmp+1,tmp+tnt+1,E.p[e])-tmp;
DT.Modify(last,DT.root[i],1,tnt,E.p[e],E.k[e]);
last=DT.root[i];
}
}
for(int i=1;i<=N;i++){
scanf("%d%d%d%d",&x,&a,&b,&c);
k=1+(a*pre+b)%c;//*/scanf("%d%d",&x,&k);
if(DT.size[DT.root[x]]<=k) pre=DT.sum[DT.root[x]];
else pre=DT.Query(DT.root[x],1,tnt,k);
printf("%lld\n",pre);
}
return 0;
}

  

●洛谷P3168 [CQOI2015]任务查询系统的更多相关文章

  1. 洛谷 P3168 [CQOI2015]任务查询系统 解题报告

    P3168 [CQOI2015]任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分. 超级计算机中的任务用三元组\((S_i,E_i,P_i) ...

  2. 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]

    题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...

  3. 洛谷P3168 [CQOI2015]任务查询系统

    #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #in ...

  4. P3168 [CQOI2015]任务查询系统

    题目地址:P3168 [CQOI2015]任务查询系统 主席树的模板题 更模板的在这儿:P3834 [模板]可持久化线段树 1(主席树) 形象的说,P3834是"单点修改,区间查询" ...

  5. bzoj3932 / P3168 [CQOI2015]任务查询系统(主席树+差分)

    P3168 [CQOI2015]任务查询系统 看到第k小,就是主席树辣 对于每一段任务(a,b,k),在版本a的主席树+k,版本b+1的主席树-k 同一时间可能有多次修改,所以开个vector存操作, ...

  6. 洛谷$P$3168 任务查询系统 $[CQOI2015]$ 主席树

    正解:主席树 解题报告: 传送门! 首先考虑如果是单点修改,那就是个线段树板子嘛$QwQ$ 然后现在是区间修改,对于区间修改,显然就考虑差分下,就变成单点修改辣$QwQ$ 同时单点查询前$k$小也就变 ...

  7. P3168 [CQOI2015]任务查询系统(主席树)

    题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei ...

  8. Luogu P3168 [CQOI2015]任务查询系统

    题目链接 \(Click\) \(Here\) 差分主席树,就是把主席树做成一个差分前缀和的形式,还是很容易想到的. 写主席树的时候几个注意点: 查询可能开始于所有任务之前,二分任务点要把左边界设置为 ...

  9. p3168 [CQOI2015]任务查询系统(差分+主席树)

    恕我才学浅薄,一开始想到的是树状数组+线段树,然后看了题解才第一次见到了差分这种神奇的科技 仔细想想,主席树的本质不就是前缀和嘛,加上一个差分也是可以的,没想到真是罪过罪过 对时间维护一个差分 在Si ...

随机推荐

  1. Linux下进程间通信的六种机制详解

    linux下进程间通信的几种主要手段:        1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具 ...

  2. 201621123040《Java程序设计》第2周学习总结

    1.本周学习总结 关键词:Java中的字符串与数组 c语言基本语法的迁移 相关总结:在一周的学习过程中,我自主学习Java的基本语法,前期的相关语法与c语言的基本语法相近,也算是做到了很好的回顾:在郑 ...

  3. Twisted UDP编程技术

    实战演练1:普通UDP UDP是一种无连接对等通信协议,没有服务器和客户端概念,通信的任何一方均可通过通信原语直接和其他方通信 1.相对于TCP,UDP编程只需定义DatagramProtocol子类 ...

  4. poj2029 Get Many Persimmon Trees

    http://poj.org/problem?id=2029 单点修改 矩阵查询 二维线段树 #include<cstdio> #include<cstring> #inclu ...

  5. XFTP连接主机文件名显示中文乱码且不能下载的解决方法

    Xftp连接主机文件名显示中文乱码且不能下载的本地解决方法 原因:Xftp编码格式问题 解决方法:把Xftp的编码格式增加UTF-8 具体步骤:打开Xftp,文件-属性,在打开的属性界面中打开&quo ...

  6. 易错点---所有的字符都自带bool值

    所有的字符都自带布尔值,只有0,None,空为False,其他全部为真!!!!!!!!!!! count = 0 while count < 3 : inp_age =input('Enter ...

  7. AngularJS1.X学习笔记10-自定义指令(下)

    继续继续,学完这个部分就去吃饭.引用自由男人的话作为本文的开始:“默认情况下,链接函数被传入了控制器的作用域,而该控制器管理着的视图包含了指令所应用到的元素”.果然像是绕口令,还是看看你的例子比较好. ...

  8. java程序员最不愿意看到的十件事

     0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...

  9. hadoop2.6.0理论:hdfs、yarn、mapreduce的架构

    HDFS2的架构:负责数据的分布式存储 主从结构 主节点,可以有2个: namenode 从节点,有很多个: datanode namenode负责: 接收用户操作请求,是用户操作的入口 维护文件系统 ...

  10. Mego开发文档 - 从EF6/EFCore迁移到Mego

    从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...