「CQOI2015」任务查询系统

传送门

好像也是板子题???

区间修改,单点查询,考虑差分。

然后每次查询时就直接在对应的主席树上二分即可。

参考代码:

#include <cstdio>
#include <vector>
#define rg register
#define file(x) freopen(x".in", "r", stdin), freopen(x".out", "w", stdout)
using namespace std;
template < class T > inline void read(T& s) {
s = 0; int f = 0; char c = getchar();
while ('0' > c || c > '9') f |= c == '-', c = getchar();
while ('0' <= c && c <= '9') s = s * 10 + c - 48, c = getchar();
s = f ? -s : s;
} typedef long long LL;
const int _ = 100010; vector < int > vec1[_], vec2[_];
struct node { int lc, rc, cnt; LL sum; } t[_ << 6];
int n, m, tot, len, rt[_]; inline void update(int& p, int x, int k, int l = 1, int r = len) {
t[++tot] = t[p], t[tot].sum = t[p].sum + 1ll * x * k, t[tot].cnt = t[p].cnt + k, p = tot;
if (l == r) return ;
int mid = (l + r) >> 1;
if (x <= mid) update(t[p].lc, x, k, l, mid);
else update(t[p].rc, x, k, mid + 1, r);
} inline LL query(int p, int k, int l = 1, int r = len) {
if (l == r) return min(t[p].sum, 1ll * k * l);
int mid = (l + r) >> 1, num = t[t[p].lc].cnt;
if (num >= k) return query(t[p].lc, k, l, mid);
else return query(t[p].rc, k - num, mid + 1, r) + t[t[p].lc].sum;
} int main() {
#ifndef ONLINE_JUDGE
file("cpp");
#endif
read(m), read(n);
for (rg int s, e, p; m--; )
read(s), read(e), read(p), len = max(len, p), vec1[s].push_back(p), vec2[e + 1].push_back(p);
for (rg int i = 1; i <= n; ++i) {
rt[i] = rt[i - 1];
for (rg int j = 0; j < vec1[i].size(); ++j) update(rt[i], vec1[i][j], 1);
for (rg int j = 0; j < vec2[i].size(); ++j) update(rt[i], vec2[i][j], -1);
}
LL ans = 1;
for (rg int x, a, b, c, k, i = 1; i <= n; ++i) {
read(x), read(a), read(b), read(c);
k = (1ll * a * ans + b) % c + 1;
printf("%lld\n", ans = query(rt[x], k));
}
return 0;
}

「CQOI2015」任务查询系统的更多相关文章

  1. LibreOJ2097 - 「CQOI2015」任务查询系统

    Portal Description 给出\(n(n\leq10^5)\)个任务,和总时间范围\(m(m\leq10^5)\).每个任务有开始/结束时间\(s_i,e_i(1\leq s_i \leq ...

  2. LibreOJ2095 - 「CQOI2015」选数

    Portal Description 给出\(n,k,L,R(\leq10^9)\),求从\([L,R]\)中选出\(n\)个可相同有顺序的数使得其gcd为\(k\)的方案数. Solution 记\ ...

  3. 「CQOI2015」选数

    「CQOI2015」选数 题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都 ...

  4. 【LOJ】#2098. 「CQOI2015」多项式

    题解 令x = x - t代换一下会发现 \(\sum_{i = 0}^{n}a_i (x + t)^i = \sum_{i = 0}^{n} b_{i} x^{i}\) 剩下的就需要写高精度爆算了- ...

  5. Linux 小知识翻译 - 「LDAP」

    这次聊聊「LDAP」. LDAP是「Lightweight Directory Access Protocol」的所有,从名字上可以看出是协议的一种. LDAP是访问数据库(层次型数据库)的组件.管理 ...

  6. BZOJ_3932_[CQOI2015]任务查询系统_主席树

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

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

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

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

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

  9. 主席树||可持久化线段树||离散化||[CQOI2015]任务查询系统||BZOJ 3932||Luogu P3168

    题目: [CQOI2015]任务查询系统 题解: 是一道很经典的题目.大体思路是抓优先级来当下标做主席树,用时刻作为主席树的版本.然而优先级范围到1e7去了,就离散化一遍.然后把每个事件的开始(s). ...

随机推荐

  1. js或者jq的string类型或者number类型的相互转换及json对象与字符串的转换

    1.将值乘以1,将string类型转为number类型 //算合计价值function summoney(money) { var zijin = $("#main_xm_dam09&quo ...

  2. 第三十三篇 玩转数据结构——红黑树(Read Black Tree)

    1.. 图解2-3树维持绝对平衡的原理: 2.. 红黑树与2-3树是等价的 3.. 红黑树的特点 简要概括如下: 所有节点非黑即红:根节点为黑:NULL节点为黑:红节点孩子为黑:黑平衡 4.. 实现红 ...

  3. 短网址url接口api,url短链接(t.cn、url.cn)生成

    简要说明 短网址api接口有很多格式,不同的接口生成的短网址格式也不同,比如常见的t.cn.url.cn.w.url.cn等格式.总而言之短网址接口就是用来将一个冗长的链接缩短成10个字符以内的短链接 ...

  4. BZOJ1015[JSOI2008]星球大战starwar题解报告

    题目链接 考虑正序去除点去掉其所有连边十分复杂,可以倒序离线处理,每次新建一个点,连接其连边,用并查集统计联通块的个数. 附代码 #include<iostream> #include&l ...

  5. testng如何实现并发

    参考: https://www.cnblogs.com/znicy/p/6534893.html

  6. centos7 sshpass 用法详解

    可以参考文章:https://www.cnblogs.com/kaishirenshi/p/7921308.html 安装方式直接通过yum 安装 yum -y install sshpass 常用的 ...

  7. webpack配置的说明

    {devtool: 'source-map',//要启用source-map需加上此配置项,同时css或less的loader要加上参数?sourceMap,js的loader不用加 entry: e ...

  8. ABB工业机器人(条件执行数字信号判断,画方or画圆)

    一.前戏 条件:从安全点,到工具区域夹取工具(笔),到工作区域,判断数字信号 Di1 =1 ,Ture :画方,False:画圆,回到工具区域放下工具(笔),回到安全点 二. 准备工作 校准tcp工具 ...

  9. 爬虫入门 requests库

    写在最前的具体资料: https://2.python-requests.org//zh_CN/latest/user/quickstart.html https://www.liaoxuefeng. ...

  10. linux nmon安装

    系统版本红帽7.7: [root@hostuser1 nmon_permon]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core ...