当前位置: 首页 > 编程日记 > 正文

CQOI2015 任务查询系统

传送门

又是一句经常见到的话……做完这题对主席树的理解会更好一些……

这道题把普通的主席树单点修改区间查询改成了区间修改单点查询。这个的话我们可以改成差分解决……把一个操作改成两个,然后把所有操作按照时间进行排序。注意这里修改细节很多,因为可能在一个时间上有很多操作,所以我们要先继承上一个时间点的根的情况,然后对于本时间点的操作,自己继承自己就可以了。

然后在查询的时候,这次是直接单点查询。每次以它的右子树权值大小为判定标准进行分类递归计算。(具体看代码)当最后只剩下一个优先级的时候,他有可能不够k个,所以要先除以它的个数再乘以k,即\(sum_p / num_p \times k\),这样计算就可以了。

最后注意优先级要离散化。

看一下代码。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<queue>
#include<cstring>
#define rep(i,a,n) for(int i = a;i <= n;i++)
#define per(i,n,a) for(int i = n;i >= a;i--)
#define enter putchar('\n')
#define pr pair<int,int>
#define mp make_pair
#define fi first
#define sc second
using namespace std;
typedef long long ll;
const int M = 200005;
const int N = 1000005;
const int INF = 1000000009;ll read()
{ll ans = 0,op = 1;char ch = getchar();while(ch < '0' || ch > '9'){if(ch == '-') op = -1;ch = getchar();}while(ch >='0' && ch <= '9'){ans *= 10;ans += ch - '0';ch = getchar();}return ans * op;
}struct node
{int lson,rson;ll sum,v;
}t[N<<4];struct opa
{int tim,rk,val;ll num;bool operator < (const opa &g) const{return tim < g.tim;}
}c[M<<1];int n,m,cnt,root[M],idx;
ll g[M],h[M],x,y,z,pre = 1,a,b,C;void modify(int old,int &p,int l,int r,int val,ll num,int op)
{p = ++idx;t[p].lson = t[old].lson,t[p].rson = t[old].rson;t[p].sum = t[old].sum + num,t[p].v = t[old].v + op;if(l == r) return;int mid = (l+r) >> 1;if(val <= mid) modify(t[old].lson,t[p].lson,l,mid,val,num,op);else modify(t[old].rson,t[p].rson,mid+1,r,val,num,op);
}ll query(int p,int l,int r,ll k)
{if(l == r) return t[p].sum / t[p].v * k;int mid = (l+r) >> 1,now = t[t[p].lson].v;if(k < now) return query(t[p].lson,l,mid,k);else if(k == now) return t[t[p].lson].sum;else return t[t[p].lson].sum + query(t[p].rson,mid+1,r,k - now);
}int main()
{m = read(),n = read();rep(i,1,m){x = read(),y = read(),g[i] = read();c[++cnt].tim = x,c[cnt].val = 1,c[cnt].num = g[i];c[++cnt].tim = y+1,c[cnt].val = -1,c[cnt].num = g[i];}sort(g+1,g+1+m),sort(c+1,c+1+cnt);int tot = unique(g+1,g+1+m) - g - 1;int j = 1;rep(i,1,m+1){root[i] = root[i-1];while(c[j].tim == i && j <= cnt){int cur = lower_bound(g+1,g+1+tot,c[j].num) - g;modify(root[i],root[i],1,tot,cur,c[j].num * c[j].val,c[j].val),j++;}}rep(i,1,n){x = read(),a = read(),b = read(),C = read();ll k = 1 + (a * pre % C + b) % C;if(k > t[root[x]].v) pre = t[root[x]].sum;else pre = query(root[x],1,tot,k);printf("%lld\n",pre);}return 0;
}

转载于:https://www.cnblogs.com/captain1/p/10098959.html

相关文章:

在?三缺一,来斗个地主——肝个斗地主案例(java)

在&#xff1f;三缺一&#xff0c;来斗个地主 *手动狗头 * 模拟斗地主升级版&#xff0c;通过程序实现斗地主过程中的洗牌、发牌和看牌&#xff0c;要求&#xff1a;对牌进行排序 思路&#xff1a; 1.创建HashMap&#xff0c;键是编号&#xff0c;值是牌 2.创建ArrayList&…

RK3399 BOX编译步骤

1、U-Boot编译&#xff1a; make rk3399_box_defconfig make ARCHVaarch64 生成trust.img、 RK3399MiniLoaderAll_V1.05.bin、 uboot.img&#xff1b; 2、Kernel编译&#xff1a; make ARCHarm64 rockchip_defconfig(make ARCHarm64 sunny_rk3399_defconfig) make ARCHarm64 rk…

小型星形网络结构设计示例

<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />以下内容摘自笔者编著的《网络工程师必读——网络系统设计》一书&#xff1a; 上节介绍的是网络形成后&#xff0c;由LAN MapShot 2.0自动发现网络拓扑结构的方法。在网络没…

IOS_多线程_ASI_AFN_UIWebView

H:/0730/00_多线程4种售票_ViewController.h// // ViewController.h // 卖票 // // Created by apple on 13-7-29. // Copyright (c) 2013年 itcast. All rights reserved. //#import <UIKit/UIKit.h>interface ViewController : UIViewController// 多行文本提示框 …

Error:java: 错误: 不支持发行版本 14

Error:java: 错误: 不支持发行版本 14修改全局设置修改module设置在我换了电脑把IDEA的project转移过来之后&#xff0c;开始出现了问题 修改全局设置 修改 Files -> Settings -> Project Structure -> Project -> Project Language Level->选择版本比当前jdk版…

python简说(十五)MD5加密

def my_md5(s): news str(s).encode() m hashlib.md5(news) return m.hexdigest()转载于:https://www.cnblogs.com/wangtingting920416/p/10099896.html

[错误]xstring(525) : warning C4530:

"warning C4530:" 在编译选项中添加上 -GX 就好了&#xff0c;详情参MSDN. 作用&#xff1a;remove _ATL_MIN_CRT Link option

程序模拟电影院窗口卖票,多线程Demo

某电影院目前正在上映国产大片&#xff0c;共有100张票&#xff0c;而它有3个窗口卖票&#xff0c;请设计一个程序模拟该电影院卖票 卖电影票Demo实现步骤1.SellTicket类2.SellTicketDemo测试类3.测试结果4.问题反思4.1 相同的票出现了多次4.2 出现了负数的票实现步骤 1. 定义一…

(C#加密)幻术-大踲无形

首先:我看下面的代码只是知道大概的原理核心算法还是不太清楚~~有清楚的麻烦回复下谢谢咯咯--这也是看Msdn就是把在一个图片上隐藏数据 usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usin…

01 python爬虫

--- 转载于:https://www.cnblogs.com/haima/p/10107708.html

【BZOJ3963】[WF2011]MachineWorks cdq分治+斜率优化

【BZOJ3963】[WF2011]MachineWorks Description 你是任意性复杂机器公司(Arbitrarily Complex Machines, ACM)的经理&#xff0c;公司使用更加先进的机械设备生产先进的机器。原来的那一台生产机器已经坏了&#xff0c;所以你要去为公司买一台新的生产机器。你的任务是在转型期…

金山发布《2006年度信息安全报告》

2006年度&#xff0c;国内的互联网环境因接踵而至的信息安全事件一再掀起了波澜。作为国内领先的信息安全厂商&#xff0c;金山毒霸同数千万国内用户一起见证了对病毒、对流氓软件发出的各种绝技杀手锏。 2007年2月8日&#xff0c;金山软件正式发布了《中国互联网2006年度信息安…

Nginx+Apache Yii2.0 配置方案

最近用Yii2.0框架做了个小项目&#xff0c;虽然项目本身业务逻辑不复杂&#xff0c;但是由于本身业务逻辑的特殊性&#xff0c;在上午9点到12点之间系统访问量会突然上升&#xff08;浏览量和用户上传文件量&#xff09;。导致系统单纯的部署在Apache下&#xff0c;支撑不了这么…

RobotFramework下的http接口自动化Set Request Body 关键字的使用

Set Request Body关键字用来设置http 请求时的body 信息&#xff0c;尤其是在post 请求时&#xff0c;经常需要用到这个关键字。 该关键字接收一个参数&#xff0c;[ body ] 示例1&#xff1a;登录博客园&#xff08;http://www.cnblogs.com/&#xff09;时&#xff0c;设置登录…

JDK11使用IDEA,配置JavaFX

JDK11使用IDEA&#xff0c;配置JavaFX1.下载javaFX相关的包2.在实际Demo中试验哪里少了添加哪里导入lib文件夹&#xff0c;之后点击OK配置VMoption配置成功3.运行&#xff0c;大功告成1.下载javaFX相关的包 需要下载对应的包&#xff0c;进入openjfx.cn网站下载 https://gluon…

写了一个PPT,用于公司内部培训

匆忙写成&#xff0c;以后会慢慢补充请用力一击中等规模的并发程序设计http://files.cnblogs.com/jobs/2007-5-9-concurrent-ppt.rar2007-5-10修改版&#xff08;带参考文档&#xff09;http://files.cnblogs.com/jobs/2007-5-10-concurrent-ppt.rar转载于:https://www.cnblogs…

终端bash美化(FC)

终端bash美化(FC) 用Linux也已经一年多了&#xff0c;感觉几乎还是什么都不会。大概是一直再做一些没多大意义的事的缘故吧&#xff0c;就像今天些的内容一样。以前搞了一段时间的GENTOO&#xff0c;发现里面的bash提示&#xff08;也就是&#xff3b;userhostname directory]$…

List and ArrayList

List<> and ArrayList Class DiagramsUsing the Bit Complement of the BinarySearch() Result代码1using System; 2using System.Collections.Generic; 3class Program 4{ 5 static void Main() 6 { 7 List<string> list new List<string>();…

spring boot jpa 整合

1&#xff0c;Eclipse JPA Tool配置 https://www.cnblogs.com/wgslucky/p/10109300.html 2&#xff0c;项目地址 https://gitee.com/wgslucky/springboot-jpa 转载于:https://www.cnblogs.com/wgslucky/p/10109869.html

安装JDK1.8+环境配置

安装JDK1.8环境配置1.下载JDK2.安装JDK3.环境配置3.1 新建系统变量3.2 添加Path路径3.3 使用cmd命令行验证是否环境配置成功1.下载JDK 直接官网下载&#xff1a;http://www.oracle.com 下载链接https://www.oracle.com/java/technologies/javase-downloads.html#JDK8 选择自己…

Nodejs.热部署方法

在开发中我们修改了一点代码后要去重启服务器才能看到结果&#xff0c;为了省去这个过程我们以往经常使用热部署代码的方法 下面是使用“supervisor”来达到热部署能力的方法: sudo npm install -g supervisor #安装 supervisor app.js #启动 如果碰到如下提示, 则表示路径没…

SortedList 泛型类

SortedList 泛型类 请参见 示例 成员 全部折叠 全部展开 语言筛选器&#xff1a; 全部 语言筛选器&#xff1a; 多个 语言筛选器&#xff1a; Visual Basic 语言筛选器&#xff1a; C# 语言筛选器&#xff1a; C语言筛选器&#xff1a; J# 语言筛选器&#xff1a; JScri…

中国现代化进程专题讲座——有感

最近有上段治文老师的中国现代化进程这门课&#xff0c;感觉受益颇多。 从国外到国内&#xff0c;从古代到如今&#xff0c;讲论点、论据&#xff0c;评论历史人物、历史事件&#xff0c;讲的很宏大&#xff0c;很深刻。我并没有特意捧他&#xff0c;而是深深被其思想的深刻、言…

java运行出现JNI错误,JDK8和JDK11都安装了

java运行出现JNI错误&#xff0c;JDK8和JDK11都安装了1. 问题描述2. 尝试办法3. 解决办法3.1 解决方法&#xff1a;3.2 测试结果成功1. 问题描述 因为编程的需要&#xff0c;所以我安装了JDK8和JDK11&#xff0c;在安装好了之后配置好了环境变量&#xff0c;之后打开Eclipse的…

爱不释手(Typingfaster)1.78beta,重大升级,欢迎试用,期待反馈。

爱不释手1.78测试版主要有以下改进&#xff1a;1、改进内核&#xff0c;大幅度提高了屏显速度&#xff1b;2、增加文章分段显示功能&#xff1b;3、增加每秒按键次数统计&#xff1b;4、测试结果中划分了实际速度与名义速度&#xff0c;即实际速度&#xff1d;名义速度准确率&a…

php 网站内容采集器 Snoopy

Snoopy转载于:https://www.cnblogs.com/buxiangxin/p/7245580.html

[转]笑话: 耐力惊人的三只乌龟

某日&#xff0c;龟爸、龟妈、龟儿子三只乌龟&#xff0c;决议去郊游。带了一个山东大饼&#xff0c;和两罐海底鸡出发到XX山去。 苦爬十年&#xff0c;终於到了。席地而坐&#xff0c;卸下装备&#xff0c;准备进食。****~~~该死&#xff01;&#xff01;没带开罐器&#xff0…

如何解决代码中if…else 过多的问题

前言 if...else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if...else。虽然 if...else 是必须的&#xff0c;但滥用 if...else 会对代码的可读性、可维护性造成很大伤害&#xff0c;进而危害到整个软件系统。现在软件开发领域出现了很多新技术、新概念…

Facial keypoints detection Kaggle 竞赛系列

3.2# Facial keypoints detection 作者&#xff1a;Stu. RuiQQ: 1026163725原文链接&#xff1a;http://blog.csdn.net/i_love_home/article/details/51051888该题主要任务是检測面部关键点位置 Detect the location of keypoints on face images 问题表述 在本问题中。要求计算…

Error:java: 无效的源发行版: 11

Error:java: 无效的源发行版: 111.问题描述2.原因查找3.解决办法3.1 打开IDEA的File—Project Structure设置3.2 修改Project SDK为自己想要切换的版本3.3 修改project languang level1.问题描述 在我的电脑中同时安装了JDK8和JDK11&#xff0c;之前本来调试好了的&#xff0c…