[bzoj3932][CQOI2015][任务查询系统] (主席树)
Description
Input
Output
Sample Input
Sample Output
HINT
Solution
对每个按时间排序,插入到对时间点建以任务优先级为区间的主席树,处理一个记录和的键值,以及一个处理数量的键值就可以做了
注意要开long long,而且空间不能只开n*log2(len)大小的,至少n*60
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 100010
#define ll long long
#define INF 10000000
#define mid ((x>>1)+(y>>1)+(x&y&1))
using namespace std;
inline ll Rin(){
ll x=,c=getchar(),f=;
for(;c<||c>;c=getchar())
if(!(c^))f=-;
for(;c>&&c<;c=getchar())
x=(x<<)+(x<<)+c-;
return x*f;
}
struct Seg{
ll sum;
int sin,ls,rs;
}key[N*];
vector<int>L[N],R[N];
int n,m,rt[N],tot,mn=INF,mx,sign,mark[N*];
void newnode(int &pr,int pl){
key[pr=++tot]=key[pl];
mark[pr]=sign;
}
void modify(int &pr,int pl,int x,int y,int k,int d){
if(mark[pl]^sign)
newnode(pr,pl);
key[pr].sin+=d;
key[pr].sum+=k*d;
if(!(x^y))return;
if(k<=mid)modify(key[pr].ls,key[pl].ls,x,mid,k,d);
else modify(key[pr].rs,key[pl].rs,mid+,y,k,d);
}
ll query(int p,int x,int y,int k){
if(!(x^y))return (ll)x*k;
if(key[key[p].ls].sin>=k)return query(key[p].ls,x,mid,k);
return key[key[p].ls].sum+query(key[p].rs,mid+,y,k-key[key[p].ls].sin);
}
int main(){
n=Rin(),m=Rin();
for(int i=;i<=n;i++){
int x=Rin(),y=Rin(),z=Rin();
L[x].push_back(z);
R[y].push_back(z);
mn=min(mn,x);
mx=max(mx,y);
}
for(int i=mn;i<=mx;i++){
newnode(rt[i],rt[i-]);sign++;
for(int j=;j<L[i].size();j++)
modify(rt[i],rt[i],,INF,L[i][j],);
for(int j=;j<R[i-].size();j++)
modify(rt[i],rt[i],,INF,R[i-][j],-);
}
ll a,b,c,ans=;
while(m--){
int x=Rin();
a=Rin(),b=Rin(),c=Rin();
int k=(int)+(a*ans+b)%c;
if(key[rt[x]].sin<=k)
printf("%lld\n",ans=key[rt[x]].sum);
else
printf("%lld\n",ans=query(rt[x],,INF,k));
}
return ;
}
[bzoj3932][CQOI2015][任务查询系统] (主席树)的更多相关文章
- BZOJ3932: [CQOI2015]任务查询系统 主席树
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 4869 Solved: 1652[Submit][St ...
- 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值离散化,然后对于每个时刻建一棵定义域是 ...
随机推荐
- web api添加拦截器
实现思路 1.标识控制器有拦截特性: 2.控制器拦截处理: 代码实现 1.标识控制器有拦截特性,代码: [MyFilter] public string PostFindUser([FromBody] ...
- Hadoop的学习--安装配置与使用
安装配置 系统:Ubuntu14.04 java:1.7.0_75 相关资料 官网 下载地址 官网文档 安装 我们需要关闭掉防火墙,命令如下: sudo ufw disable 下载2.6.5的版本, ...
- 读书笔记--SQL必知必会02--检索数据
2.1 SELECT语句 SELECT语句的用途是从一个或多个表中检索信息. 关键字(keyword) 作为SQL组成部分的保留字.关键字不能作为表或列的名字. 2.2 检索单个列 多条SQL语句必须 ...
- android快捷开发之Retrofit网络加载框架的简单使用
大家都知道,安卓最大的特点就是开源化,这自然会产生很多十分好用的第三方API,而基本每一个APP都会与网络操作和缓存处理机制打交道,当然,你可以自己通过HttpUrlConnection再通过返回数据 ...
- python获取命令行输出结果
#coding=utf-8 import os command = 'ping www.baidu.com ' #可以直接在命令行中执行的命令 r = os.popen(command) #执行该 ...
- CSS笔记总结
1.让页面里的字体变清晰和变细 -webkit-font-smoothing: antialiased; 2.让Chrome支持小于12px 的文字 -webkit-text-size-adjust: ...
- 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 3
原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...
- Springl利用Aspectj的扩展实现Aop
1. Spring为什么要使用Aspectj Spring Aop:Spring自己原生的Aop,只能用一个词来形容:难用. 你需要实现大量的接口,继承大量的类,所以spring aop一度被千夫所指 ...
- Gate Of Babylon bzoj 1272
Gate Of Babylon (1s 128MB) babylon [问题描述] [输入格式] [输出格式] [样例输入] 2 1 10 13 3 [样例输出] 12 [样例说明] [数据范围] 题 ...
- PHP 装饰器模式
装饰器模式:是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能. [装饰器模式中主要角色] 抽象组件角色(Component):定义一个对象接口,以规范准备接受附加责任的对象,即可以给这 ...