【CQOI 2015】任务查询系统

2023-11-17

【题目】

传送门

题目描述:

最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第 Si 秒开始,在第 Ei 秒后结束(第 Si 秒和 Ei 秒任务也在运行),其优先级为 Pi 。同一时间可能有多个任务同时执行,它们的优先级可能相同,也可能不同。

调度系统会经常向查询系统询问,第 Xi 秒正在运行的任务中,优先级最小的 Ki 个任务(即将任务按照优先级从小到大排序后取前 Ki 个)的优先级之和是多少。特别的,如果 Ki 大于第 Xi 秒正在运行的任务总数,则直接回答第 Xi 秒正在运行的任务优先级之和。上述所有参数均为整数,时间的范围在 1 到 n 之间(包含 1 和 n)。

输入格式:

输入文件第一行包含两个空格分开的正整数 m 和 n,分别表示任务总数和时间范围。
接下来 m 行,每行包含三个空格分开的正整数 Si、Ei 和 Pi(Si≤Ei),描述一个任务。
接下来 n 行,每行包含四个空格分开的整数 Xi、Ai、Bi 和 Ci,描述一次查询。查询的参数 Ki 需要由公式 Ki=1+(Ai*Pre+Bi) mod Ci 计算得到。其中 Pre 表示上一次查询的结果,对于第一次查询,Pre=1。

输出格式:

输出共 n 行,每行一个整数,表示查询结果。

样例数据:

输入
4 3
1 2 6
2 3 3
1 3 2
3 3 4
3 1 3 2
1 1 3 4
2 2 4 3

输出
2
8
11

备注:

【样例解释】
K1=(1*1+3)%2+1=1
K2=(1*
2+3)%4+1=2
K3=(2*8+4)%3+1=3

【数据范围】
对于 50% 的数据,Ai=0
对于 100% 的数据,1≤m,n,Si,Ei,Ci≤100000;0≤Ai,Bi≤100000;1≤Pi≤10000000,Xi 为 1 到 n 的一个排列


【分析】

应该很容易可以分析出这是一道主席树题吧

我们以每个时间为根,以优先级为权值构建权值线段树

假如有一个 [ l l l r r r ] 时间内的任务,我们用差分的思想,在 l l l 上的出现次数 + 1 +1 +1,在 r + 1 r+1 r+1 上的出现次数 − 1 -1 1,这样按照时间从前往后扫一遍,就可以保证所有的时间上的值是对的

查询就和查区间第 k k k 大很像了,只不过我们要找前 k k k 个的值,其实只用再维护一个 s u m sum sum 就可以了

这道题好多大佬都用了离散化,但经实测,此题不用离散就可以过

还有要注意这种需要累加的题多半要开 l o n g    l o n g long \;long longlong


【代码】

#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#define N 100005
#define LogN 105
#define Max (int)1e+7+5
#define lc(x) tree[x].lc
#define rc(x) tree[x].rc
#define sum(x) tree[x].sum
#define num(x) tree[x].num
using namespace std;
int n,m,t;
int root[N];
struct node
{
	int val,mark;
	node(int val,int mark):val(val),mark(mark){}
};
vector<node>a[Max];
struct President_Tree
{
	int lc,rc,num;
	long long sum;
}tree[N*LogN];
void insert(int y,int &x,int l,int r,int val,int mark)
{
	x=++t;
	tree[x]=tree[y];
	sum(x)+=val*mark;
	num(x)+=mark;
	if(l==r)  return;
	int mid=(l+r)>>1;
	if(val<=mid)  insert(lc(y),lc(x),l,mid,val,mark);
	else  insert(rc(y),rc(x),mid+1,r,val,mark);
}
long long query(int root,int l,int r,int k)
{
	if(k>=num(root))  return sum(root);
	if(l==r)  return sum(root)/num(root)*k;
	int mid=(l+r)>>1,delta=num(lc(root));
	if(delta>=k)  return query(lc(root),l,mid,k);
	return query(rc(root),mid+1,r,k-delta)+sum(lc(root));
}
int main()
{
	int s,e,p,i,j;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;++i)
	{
		scanf("%d%d%d",&s,&e,&p);
		a[s].push_back(node(p,1));
		a[e+1].push_back(node(p,-1));
	}
	for(i=1;i<=n;++i)
	{
		root[i]=root[i-1];
		for(j=0;j<a[i].size();++j)
		  insert(root[i],root[i],1,Max,a[i][j].val,a[i][j].mark);
	}
	int a,b,c,x,k;
	long long pre=1;
	for(i=1;i<=m;++i)
	{
		scanf("%d%d%d%d",&x,&a,&b,&c);
		k=1+(a*pre+b)%c;
		pre=query(root[x],1,Max,k);
		printf("%lld\n",pre);
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【CQOI 2015】任务查询系统 的相关文章

  • 【笔记】用python计算BS模型、隐波的笔记

    前言 这篇笔记是根据姜禄彬老板在公众号上发布的笔记复刻的 不同的是原作者用的是股票数据 我用的是比特币期权数据 这份笔记里主要是如何用python代码来计算BS模型 如何求隐含波动率 什么是波动率微笑 greeks等 整体还是有点乱 之后有
  • 半生已过:别赌感情,别猜人心

    感情中 很多时候 我们明明懂得了一些道理 却依然会屡屡受伤 是因为我们总是抱着一种信念 以为自己很在乎的人 真的和别人不一样 于是 我们常常毫无保留地信任一个人 坚定不移地相信一段感情 殊不知 期望越大 有时候失望也就会越大 看过一段话说
  • Gabor滤波进行目标图像纹理特征的提取

    1 傅里叶变换 1 简介 数字图像处理的方法主要分成两大部分 空域分析法和频域分析法 空域分析法就是对图像矩阵进行处理 频域分析法是通过图像变换将图像从空域变换到频域 从另外一个角度来分析图像的特征并进行处理 频域分析法在图像增强 图像复原

随机推荐

  • Mysql错误日志、通用查询日志、慢日志的介绍和二进制日志的查看和备份恢复

    目录 一 日志 1 日志和备份的必要性 2 mysql的日志类型 1 错误日志 2 通用查询日志 3 二进制日志 4 慢日志 一 日志 1 日志和备份的必要性 在数据库保存数据时 有时候会因为误删除数据库 意外断电或程序意外终止 由于病毒造
  • openCV无法打开USB摄像头问题

    用Python OpenCV 打开USB摄像头时 出现如下提示 意思是 媒体类型不匹配 测试源代码 cap cv2 VideoCapture 0 while cap isOpened start time time is opened fr
  • 【msvcp100.dll下载】msvcp100.dll丢失修复

    遇到因msvcp100 dll文件丢失而无法正常运行软件或游戏程序的朋友 不用担心 根据小编整理的教程文章 将dll文件放在操作系统system32文件夹的适当位置可以解决这个问题 具体该如何操作呢 只需下载指定的dll文件即可提醒缺少哪个
  • 100道mysql的面试题问答

    1 MySQL 索引使用有哪些注意事项呢 可以从三个维度回答这个问题 索引哪些情况会失效 索引不适合哪些场景 索引规则 索引哪些情况会失效 查询条件包含or 可能导致索引失效 如何字段类型是字符串 where时一定用引号括起来 否则索引失效
  • 数学建模笔记(八):微分方程的应用(偏微分方程)

    文章目录 一 微分方程概述 1 什么是微分方程 2 求解方法 一 求精确解 二 求数值解 近似解 三 定性理论方法 3 建立微分模型的方法 一 根据定理规律列方程 二 微元分析法 三 模拟近似法 4 适用问题 5 常见动态模型 二 观众厅地
  • python3.7 连接sql server出现pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\...

    今天在使用python3 7中的pymssql 连接sqlserver的时候遇到的问题 pymssql OperationalError 20009 b DB Lib error message 20009 severity 9 nUnab
  • 区块链-公钥生成地址

    目录 https blog csdn net qq 40452317 article details 89646633 比特币 区块链 地址是一个由数字和字母组成的字符串 由公钥 一个同样由数字和字母组成的字符串 生成的比特币地址以数字 1
  • UE4/UE5 动画控制

    工程下载 https mbd pub o bread ZJ2cm5pu 蓝图控制sequence播放 倒播动画 设置开启鼠标指针 开启鼠标事件 在场景中进行过场动画制作 设置控制事件
  • 滚动页面触发相应位置动画 ---react

    需要实现的效果 滚动到内容区域触发 第一段内容移动效果 第二段内容淡入 第三段内容缩放 实现思路 滚动过的距离 当前窗口的高度 gt 元素到顶部窗口的距离 gt 则触发动画 整体代码 import React useRef useEffec
  • Rust 取代 C++ ?

    https www zhihu com question 27608498 作者 天象 链接 https www zhihu com question 27608498 answer 50130876 来源 知乎 著作权归作者所有 商业转载
  • CSS 文字特效运用目录

    主要是记录文字相关的特效实践案例和实现思路 章节名称 完成度 难度 文章地址 完整代码下载地址 创意填充文本悬停效果 完成 一般 文章链接 代码下载 发光文字跟随鼠标 完成 一般 文章链接 代码下载 酷炫的文字悬停效果 完成 一般 文章链接
  • checkbox中checked属性总结

    一 checked属性定义和用法 1 checked属性是一个布尔属性 2 checked属性规定在页面加载时应该被预先选定的
  • 数据库连接的5种方式

    数据库连接的5种方式 String url jdbc mysql localhost 3306 njustzjc1 Properties properties new Properties properties setProperty us
  • 基础理解之SESSION

    SESSION是服务器端的一种会话机制 当客户端的请求服务器创建一个SESSION时 服务器会先检测该请求里面是否包含一个惟一的sesionid 如果是 说明服务器已经为该用户创建过SESSION 只要按照该sesionid检索出该用户的s
  • 在钉钉上怎么手写_大庆市第十中学

    有关直播的那些事儿 2020 停课不停学 十中在行动 根据大庆市教育局关于网络教学工作的要求和指导意见 我校将于3月2日全面开展网络教学工作 虽然网络直播教学与线下日常教学主旨都是一样的 但由于形式的差异 对于很少体验过网络直播教学的老师来
  • 红米ac2100 刷openwrt以及刷回记录

    redmiac2100 刷机 参考 手动升级漏洞固件 https wwx lanzoux com i6iqxhqp98f 或者百度网盘链接 https pan baidu com s 1H355Ym9p TLrVOux2w2b7Q 提取码
  • Flutter开发之——Icon图标

    一 概述 Icon是支持material design的一系列图标 Icon类似于iconfont即字体图标 它是将图标做成字体文件 然后通过指定不同的字符显示不同图片 二 Icon说明 2 1 说明 在字体文件中 每一个字符都对应一个位码
  • Android内存管理

    Android内存泄露 全解析和处理办法 http www jianshu com p bf159a9c391a
  • 产品运行所需的信息检索失败。请重新安装xshell

    产品运行所需的信息检索失败 请重新安装xshell 很久没有应用Xshell进行远程服务器连接了 由于需要应用远程云计算资源 因此有需要使用这个软件 但是在今天的使用过程中出现了 问题 打开Xshell之后 找到可执行文件之后 点击运行 管
  • 【CQOI 2015】任务查询系统

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