[CQOI2015]任务查询系统
把一个任务拆成两个,在s时加入,在e+1时减去即可
直接离散化后上主席树
# include <bits/stdc++.h>
# define IL inline
# define RG register
# define Fill(a, b) memset(a, b, sizeof(a))
using namespace std;
typedef long long ll;
const int _(5e6 + 10);
IL ll Read(){
RG char c = getchar(); RG ll x = 0, z = 1;
for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1;
for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
return x * z;
}
int ls[_], rs[_], rt[_], sz[_], n, m, p[_], id[_], s[_], e[_];
int num, len, type[_], tim[_], val[_], cnt, ID[_];
ll sum[_];
IL bool Cmp(RG int x, RG int y){ return tim[x] < tim[y]; }
IL void Build(RG int &x, RG int l, RG int r){
x = ++num;
if(l == r) return;
RG int mid = (l + r) >> 1;
Build(ls[x], l, mid); Build(rs[x], mid + 1, r);
}
IL void Modify(RG int &x, RG int l, RG int r, RG int tp, RG int va){
rt[++num] = rt[x]; ls[num] = ls[x]; rs[num] = rs[x];
sz[num] = sz[x] + tp; sum[num] = sum[x] + tp * p[va];
x = num;
if(l == r) return;
RG int mid = (l + r) >> 1;
if(va <= mid) Modify(ls[x], l, mid, tp, va);
else Modify(rs[x], mid + 1, r, tp, va);
}
IL ll Query(RG int x, RG int l, RG int r, RG int k){
if(l == r) return 1LL * p[l] * k;
RG int mid = (l + r) >> 1;
if(k <= sz[ls[x]]) return Query(ls[x], l, mid, k);
return sum[ls[x]] + Query(rs[x], mid + 1, r, k - sz[ls[x]]);
}
int main(RG int argc, RG char* argv[]){
m = Read(); n = Read();
for(RG int i = 1; i <= m; ++i) s[i] = Read(), e[i] = Read(), id[i] = p[i] = Read();
sort(p + 1, p + m + 1); len = unique(p + 1, p + m + 1) - p - 1;
for(RG int i = 1; i <= m; ++i){
id[i] = lower_bound(p + 1, p + len + 1, id[i]) - p;
++cnt; ID[cnt] = cnt; type[cnt] = 1; tim[cnt] = s[i]; val[cnt] = id[i];
++cnt; ID[cnt] = cnt; type[cnt] = -1; tim[cnt] = e[i] + 1; val[cnt] = id[i];
}
sort(ID + 1, ID + cnt + 1, Cmp);
Build(rt[0], 1, len);
for(RG int t = 1, j = 1; t <= n; t++){
rt[t] = rt[t - 1];
for(; t == tim[ID[j]]; ++j){
RG int i = ID[j];
Modify(rt[tim[i]], 1, len, type[i], val[i]);
}
}
for(RG ll i = 1, ans = 1; i <= n; ++i){
RG ll x = Read(), a = Read(), b = Read(), c = Read(), k = 1 + (a * ans + b) % c;
k = min(k, (ll)sz[rt[x]]);
ans = Query(rt[x], 1, len, k);
printf("%lld\n", ans);
}
return 0;
}
[CQOI2015]任务查询系统的更多相关文章
- BZOJ_3932_[CQOI2015]任务查询系统_主席树
BZOJ_3932_[CQOI2015]任务查询系统_主席树 题意: 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,P ...
- BZOJ3932: [CQOI2015]任务查询系统 主席树
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 4869 Solved: 1652[Submit][St ...
- P3168 [CQOI2015]任务查询系统
题目地址:P3168 [CQOI2015]任务查询系统 主席树的模板题 更模板的在这儿:P3834 [模板]可持久化线段树 1(主席树) 形象的说,P3834是"单点修改,区间查询" ...
- 主席树||可持久化线段树||离散化||[CQOI2015]任务查询系统||BZOJ 3932||Luogu P3168
题目: [CQOI2015]任务查询系统 题解: 是一道很经典的题目.大体思路是抓优先级来当下标做主席树,用时刻作为主席树的版本.然而优先级范围到1e7去了,就离散化一遍.然后把每个事件的开始(s). ...
- bzoj3932 / P3168 [CQOI2015]任务查询系统(主席树+差分)
P3168 [CQOI2015]任务查询系统 看到第k小,就是主席树辣 对于每一段任务(a,b,k),在版本a的主席树+k,版本b+1的主席树-k 同一时间可能有多次修改,所以开个vector存操作, ...
- 2018.06.30 BZOJ 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管理 ...
- [CQOI2015]任务查询系统 主席树
[CQOI2015]任务查询系统 LG传送门 以前还没见过主席树的这种写法. 考虑使用差分的思想处理每一个任务,然后所有的东西就都能顺理成章地用主席树维护了,查询的时候和平时的主席树有一点不同,详见代 ...
- 【BZOJ3932】[CQOI2015]任务查询系统 主席树
[BZOJ3932][CQOI2015]任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si, ...
- bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管 ...
- BZOJ3932 CQOI2015 任务查询系统 【主席树】
BZOJ3932 CQOI2015 任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei, ...
随机推荐
- vagrant系列教程(一):vagrant的安装与初识(转)
[参考]https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.1.md 阅读目录 下载一个合适的box 完成一个box ...
- 微信小程序 页面跳转传递数据
点击view 跳转页面 <view class="album_image" data-album-obj="{{item}}" bindtap=" ...
- Ehcache入门基础
1.ehcache的简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 2.ehcache入门实例 1.首先先导入 ...
- Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ maven2 was cached in the local repository, resolution will not be reattempted until the update interv
Failure to transfer org.apache.maven:maven-archiver:pom:2.5 from http://repo.maven.apache.org/ mave ...
- Mysql给某一台主机授权访问,修改root密码
ubuntu上用的是phpstudy,安装好之后,敲mysql,提示没有,需要安装mysql的客户端. 安装好之后直接敲mysql,敲 mysql 再敲use mysql 再敲mysql -uroot ...
- 轻松搭建Git服务器(Ubuntu)
搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...
- 【SSH框架】系列之 Spring 整合 Hibernate 框架
1.SSH 三大框架整合原理 Spring 与 Struts2 的整合就是将 Action 对象交给 Spring 容器来负责创建. Spring 与 Hibernate 的整合就是将 Session ...
- ReportView动态加载带参数的RDCL文件
在vs里新建一个winform程序"ReportViewTest",在form1中添加一个reportView控件,from1的load事件如下: private void For ...
- 5_Longest Palindromic Substring(Manacher) --LeetCode
参考:https://www.felix021.com/blog/read.php?2040,https://segmentfault.com/a/1190000002991199 做了修改. 首先用 ...
- VxWorks 任务
任务:在执行时每个程序都被称之为任务.VxWorks操作系统中,任务可以直接地或者以共享方式访问大多数系统资源,为了维护各自的线程,每个任务必须保持有足够的上下文环境.(1) 任务状态:就绪(R ...