bzoj3932 [CQOI2015]任务查询系统
3932: [CQOI2015]任务查询系统
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 4113 Solved: 1334
[Submit][Status][Discuss]
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
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int maxn = 200010;typedef long long ll;ll ans; int n,m,tot,cur[maxn],cnt,root[maxn],mx;struct node {int left,right,sizee;ll sum; }e[maxn * 25];struct node2 {int pos,val; }a[maxn];bool cmp(node2 a,node2 b) {return a.pos < b.pos; }void update(int l,int r,int x,int &y,int v) {e[y = ++cnt] = e[x];e[y].sizee += (v > 0 ? 1 : -1);e[y].sum += v;if (l == r)return;int mid = (l + r) >> 1;if (abs(v) <= mid)update(l,mid,e[x].left,e[y].left,v);elseupdate(mid + 1,r,e[x].right,e[y].right,v); }ll query(int l,int r,int x,int k) {if (e[x].sizee <= k)return e[x].sum;if (l == r)return 1LL * l * k;int mid = (l + r) >> 1;if (k <= e[e[x].left].sizee)return query(l,mid,e[x].left,k);elsereturn e[e[x].left].sum + query(mid + 1,r,e[x].right,k - e[e[x].left].sizee); }int main() {scanf("%d%d",&n,&m);for(int i = 1; i <= n; i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);a[++tot].pos = x;a[tot].val = z;a[++tot].pos = y + 1;a[tot].val = -z;mx = max(mx,z);}sort(a + 1,a + 1 + tot,cmp);for (int i = 1; i <= tot; i++)update(1,mx,root[i - 1],root[i],a[i].val);for (int i = tot; i >= 1; i--) //维护每一个被更改的时间点最后在哪里被更改的if (a[i].pos != a[i + 1].pos)cur[a[i].pos] = root[i];for (int i = 1; i <= m; i++) //如果当前时间点没有被更改,那么就和前一个时间点的情况一样if (!cur[i])cur[i] = cur[i - 1];ans = 1;for (int i = 1; i <= m; i++){ll t,x,y,z,k;scanf("%lld%lld%lld%lld",&t,&x,&y,&z);k = (1LL * x * ans + y) % z + 1;ans = query(1,mx,cur[t],k);printf("%lld\n",ans);}return 0; }
转载于:https://www.cnblogs.com/zbtrs/p/8279942.html
bzoj3932 [CQOI2015]任务查询系统相关推荐
- [BZOJ3932][CQOI2015]任务查询系统(差分+主席树)
题面 分析 对于一个区间修改(s,e,v),我们可以将它差分,这样就变成了单点修改s和e+1(s插入,t+1删除) 我们用主席树维护差分数组的前缀和,第i棵主席树维护区间[1,i]之间的所有差分值 那 ...
- 【BZOJ3932】[CQOI2015]任务查询系统 主席树
[BZOJ3932][CQOI2015]任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si, ...
- Bzoj 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管理 ...
- 洛谷P3168 [CQOI2015]任务查询系统 [主席树,差分]
题目传送门 任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任 ...
- [CQOI2015]任务查询系统
题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei ...
- [CQOI2015]任务查询系统(差分+主席树)
链接:https://ac.nowcoder.com/acm/problem/19936 来源:牛客网 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分. ...
- P3168 [CQOI2015]任务查询系统 差分+主席树
链接在这~:https://www.luogu.org/problem/P3168 主席静态区间修改,单点查询 区间(L,R)加1可以通过差分以后转换为L位置加1,R+1位置减1 我们只需要记录一下, ...
- CQOI2015 任务查询系统
传送门 又是一句经常见到的话--做完这题对主席树的理解会更好一些-- 这道题把普通的主席树单点修改区间查询改成了区间修改单点查询.这个的话我们可以改成差分解决--把一个操作改成两个,然后把所有操作按照 ...
- ●洛谷P3168 [CQOI2015]任务查询系统
题链: https://www.luogu.org/problemnew/show/P3168 题解: 主席树 强制在线? 那就直接对每一个前缀时间建一个线段树(可持久化线段树),线段树维护优先度权值 ...
- P3168 [CQOI2015]任务查询系统 主席树 + 差分
传送门 题意: 思路: 题目中(si,ei,pi)(s_i,e_i,p_i)(si,ei,pi)转换成操作即为在[si,ei][s_i,e_i][si,ei]区间内加上pip_ipi的优先 ...
最新文章
- 【建站系列教程】1、前言
- 信息安全系统设计基础第九周学习总结
- eye caring sticker
- hdu 1540(线段树单点更新 区间合并)
- Linux命令之 mkfs -- 在特定的分区创建 Linux 文件系统
- [html] 如何给input的右上角加个清除的按钮?
- 移动端禁止视频自动全屏播放
- 目标检测(十)--SSD
- a byte of python2微盘_《A Byte of Python》与《简明 Python 教程》PDF版
- ipad 模拟 触控板_如何将蓝牙鼠标或触控板连接到iPad
- 数据库分页的几种实现
- 提升幸福感的100件小事
- 移位寄存器——数电第六章学习
- “网红直播+电商”是门好生意?直播的商品为什么这么好卖
- 【转】网站流量UV是什么意思?什么是流量UV?
- 达梦迁移oracle,达梦数据迁移工具的使用
- 【解决方案】MacOS遇到“无法打开xxx,因为Apple无法检查其是否包含恶意软件”,怎么处理。
- 深度学习玩LOL-游戏助手-概述
- 第七章-微分方程习题
- 微信小程序——章节自测六
热门文章
- [渝粤教育] 中国地质大学 大学英语(3) 复习题
- django drf 改变retrive的pk查询字段
- sublime设置代码缩进
- 【转】无需刻录DMG光盘,教你在VMWare下安装MAC OS X Snow Leopard 10.6
- [转]mysql_connect() 不支持 请检查 mysql 模块是否正确加载 解决
- 2018年11月26日 练习3
- 10.210.3 Xcode开发包
- span width无效
- 团队项目第一阶段冲刺站立会议05
- File Manager所支持的文件