记录下自己写错的地方吧

1. 区间可能有重复

2. 没有出现的坐标也要计入version (因为询问里可能会有)

 #include <bits/stdc++.h>
using namespace std; int n,m,t1,t2,t3,t4,_s[],_e[],_p[],ind,ch[][];
int a[],root[],rcnt,ver[],maxn,_list[],flag;
long long s[]; struct Item {
int pos,typ,key;
void init(int a,int b,int c) {
pos=a; typ=b; key=c;
}
} item[]; int cmp(const Item &a, const Item &b) {
return a.pos<b.pos;
} void modify(int sp,int &p,int l,int r,int pos,int val,int k) {
if(p==||p==sp) p=++ind, ch[p][]=ch[sp][], ch[p][]=ch[sp][], a[p]=a[sp], s[p]=s[sp];
if(l==r) {
if(k==) a[p]+=, s[p]+=(long long)_list[val];
else a[p]-=, s[p]-=(long long)_list[val];
}
else{
if(val<=(l+r)/) modify(ch[sp][],ch[p][],l,(l+r)/,pos,val,k);
else modify(ch[sp][],ch[p][],(l+r)/+,r,pos,val,k);
a[p]=a[ch[p][]]+a[ch[p][]];
s[p]=s[ch[p][]]+s[ch[p][]];
}
} int queryA(int p,int l,int r,int ql,int qr) {
if(l>qr||r<ql) return ;
if(l>=ql && r<=qr) return a[p];
return queryA(ch[p][],l,(l+r)/,ql,qr)+queryA(ch[p][],(l+r)/+,r,ql,qr);
} long long queryS(int p,int l,int r,int ql,int qr) {
if(l>qr||r<ql) return ;
if(l>=ql && r<=qr) return s[p];
return queryS(ch[p][],l,(l+r)/,ql,qr)+queryS(ch[p][],(l+r)/+,r,ql,qr);
} int kth(int p,int l,int r,int k) {
if(l==r) {
if(a[p]) flag=(k-a[p])*(s[p]/a[p]);
else flag=;
return l;
}
if(k<=a[ch[p][]]) return kth(ch[p][],l,(l+r)/,k);
else return kth(ch[p][],(l+r)/+,r,k-a[ch[p][]]);
} int main(){
long long pre=;
ios::sync_with_stdio(false);
cin>>n>>m; maxn=n;
for(int i=;i<=n;i++) cin>>_s[i]>>_e[i]>>_p[i],
item[i*-].init(_s[i],,_p[i]),
item[i*].init(_e[i]+,,_p[i]),
_list[i]=_p[i];
sort(item+,item+*n+,cmp);
sort(_list+,_list+n+);
unique(_list+,_list+n+);
for(int i=;i<=*n;i++) {
if(item[i].pos-item[i-].pos) for(int j=item[i-].pos;j<item[i].pos;j++) ver[j]=i-;
modify(root[i-],root[i],,maxn,item[i].pos,lower_bound(_list+,_list+n+,item[i].key)-_list,item[i].typ?:-);
}
ver[item[*n].pos]=*n;
for(int i=;i<=m;i++) {
cin>>t1>>t2>>t3>>t4;
t2=+((long long)t2*(long long)pre+(long long)t3)%(long long)t4;
t3=kth(root[ver[t1]],,maxn,t2),
cout<<(pre=(queryS(root[ver[t1]],,maxn,,t3)+flag))<<endl;
}
}

BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化的更多相关文章

  1. BZOJ3932: [CQOI2015]任务查询系统 主席树

    3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 4869  Solved: 1652[Submit][St ...

  2. BZOJ3932[CQOI2015]任务查询系统——主席树

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

  3. 【BZOJ3932】[CQOI2015]任务查询系统 主席树

    [BZOJ3932][CQOI2015]任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si, ...

  4. [CQOI2015]任务查询系统 主席树

    [CQOI2015]任务查询系统 LG传送门 以前还没见过主席树的这种写法. 考虑使用差分的思想处理每一个任务,然后所有的东西就都能顺理成章地用主席树维护了,查询的时候和平时的主席树有一点不同,详见代 ...

  5. bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力

    3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec  Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管 ...

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

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

  7. BZOJ 3932: [CQOI2015]任务查询系统 [主席树]

    传送门 题意: 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi 调度系统会经常向查询系统询问,第Xi ...

  8. BZOJ.3932.[CQOI2015]任务查询系统(主席树 差分)

    题目链接 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了..). 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的. 所以离散化.按时间排序,把操作拆成单点加和减即可. ...

  9. BZOJ 3932: [CQOI2015]任务查询系统 | 主席树练习题

    题目: 洛谷也能评测 题解: De了好长时间BUG发现是自己sort前面有一行for没删,气死. 题目询问第x秒时候前k小的P值之和. 朴素想法: 我们可以把P值离散化,然后对于每个时刻建一棵定义域是 ...

随机推荐

  1. clr via c# 程序集加载和反射(2)

    查看,clr via c# 程序集加载和反射(1) 8,发现类型的成员: 字段,构造器,方法,属性,事件,嵌套类型都可以作为类型成员.其包含在抽象类MemberInfo中,封装了所有类型都有的一组属性 ...

  2. C#设计模式学习笔记:(15)迭代器模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7903617.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第三个模式--迭 ...

  3. Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  4. P3078 [USACO13MAR]Poker Hands S

    链接:Miku ---------------- 这道题和线段树有什么关系 --------------- 很简单的贪心,如果一堆牌比左边的大,那么肯定是要加上他的差的 反正,顺手出掉就可以了 --- ...

  5. 邓 【PHP大全】

    获取对应的时间戳(只保存月底的时间戳) function getTimeDate($timeType, $time, $count) { switch ($timeType) { case 'MONT ...

  6. PMP--1.5 项目管理描述

    项目所处的环境将影响每个项目管理过程的实施方式以及项目制约因素的优先顺序. 一. 管理一个项目的过程 ​管理一个项目通常包括(但不限于): 1. 识别项目需求 2. 处理相关方的各种需要.关注和期望 ...

  7. java 企业站源码 兼容手机平板PC 自适应响应式 SSM主流框架 freemaker 静态引擎

    前台: 支持四套模版, 可以在后台切换   系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以 ...

  8. #《Essential C++》读书笔记# 第一章 C++ 编程基础

    前言 Stanley B.Lippman 先生所著的<C++ Primer>是学习C++的一本非常优秀的教科书,但<C++ Primer>作为一本大部头书,显然不适合所有的初学 ...

  9. C#连接数据库的方法

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  10. 【macOS使用技巧】使用空格键快速预览文件内容

    Quickview 是mac系统上一个强大的预览功能, 可以预览 mp4 mov等音频文件, 当然图片.文本.也都可以进行预览. 在系统中如果你希望快速浏览一下文件而不想打开的文件的话只要选择文件然后 ...