[QOJ8672][PKUSC2024] 排队
函数复合,直接转化为离线问题,那我们就需要完成对满足条件的量的区间加操作。
显然 \(ans_{[l,r]}\ge ans_{(l,r]}\),所以可以线段树二分。
时间复杂度 \(O(q\log n)\)。
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
struct que{int l,r,id;}qu[N];
int n,lc[N],rc[N],as[N];
int q,mn[N*4],ad[N*4];
inline int cmp(que x,que y){
return x.r<y.r;
}inline void down(int x,int v){
mn[x]+=v,ad[x]+=v;
}inline void push_down(int x){
if(!ad[x]) return;
down(x*2+1,ad[x]);
down(x*2,ad[x]),ad[x]=0;
}inline void chg(int x,int l,int r,int L,int R){
if(L>R) return;
if(L<=l&&r<=R) return down(x,1);
int mid=(l+r)/2;push_down(x);
if(L<=mid) chg(x*2,l,mid,L,R);
if(R>mid) chg(x*2+1,mid+1,r,L,R);
mn[x]=mn[x*2+1];
}inline int find1(int x,int l,int r,int v){
if(mn[x]>v) return n+1;
if(l==r) return l;
int mid=(l+r)/2;push_down(x);
int re=find1(x*2,l,mid,v);
if(re<=n) return re;
return find1(x*2+1,mid+1,r,v);
}inline int find2(int x,int l,int r,int v){
if(mn[x]>=v) return n+1;
if(l==r) return l;
int mid=(l+r)/2;push_down(x);
int re=find2(x*2,l,mid,v);
if(re<=n) return re;
return find2(x*2+1,mid+1,r,v);
}inline int ans(int x,int l,int r,int k){
if(l==r) return mn[x];
int mid=(l+r)/2;push_down(x);
if(k<=mid) return ans(x*2,l,mid,k);
return ans(x*2+1,mid+1,r,k);
}int main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>q;
for(int i=1;i<=n;i++)
cin>>lc[i]>>rc[i];
for(int i=1;i<=q;i++)
cin>>qu[i].l>>qu[i].r,qu[i].id=i;
sort(qu+1,qu+q+1,cmp);
for(int i=1,j=0;i<=q;i++){
while(j<qu[i].r){
int l=find1(1,1,n,rc[++j]);
int r=find2(1,1,n,lc[j])-1;
chg(1,1,n,l,min(r,j));
}as[qu[i].id]=ans(1,1,n,qu[i].l);
}for(int i=1;i<=q;i++)
cout<<as[i]<<"\n";
return 0;
}
[QOJ8672][PKUSC2024] 排队的更多相关文章
- C++ 事件驱动型银行排队模拟
最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...
- bzoj 2729: [HNOI2012]排队
2729: [HNOI2012]排队 Time Limit: 10 Sec Memory Limit: 128 MB Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体 ...
- bzoj 2141: 排队
2141: 排队 Time Limit: 4 Sec Memory Limit: 259 MB Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵.你一个,我一个,大的分给你,小的留给我, ...
- 可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
1.可重入锁 如果锁具备可重入性,则称作为可重入锁. ========================================== (转)可重入和不可重入 2011-10-04 21:38 这 ...
- hdu 1872(看病要排队)(优先队列)
看病要排队 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 赴美工作常识(Part 6 - 绿卡排队)
上一篇<赴美工作常识(Part 5 - 绿卡优先级)>解释完排队的优先级是怎么确定的,以及 PERM 和 I–140 表的意义,接下来就要解释一下队具体是怎么排的以及排到之后的 I–485 ...
- hdu 1873 看病要排队(优先级队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873 题目大意: 三个医生看病,病人排队看病,病人有优先级,优先级高的提前看病,同样的优先级按先后.I ...
- 排队打饭 sdut 2443【最简单的贪心法应用举例】
排队打饭 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdutoj/p ...
- tomcat的maxThreads、acceptCount(最大线程数、最大排队数)
转载:http://blog.sina.com.cn/s/blog_605f5b4f01012ljj.html tomcat 的Connector配置如下 <Connector port=&qu ...
- Java核心知识点学习----线程中的Semaphore学习,公共厕所排队策略
1.什么是Semaphore? A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each acq ...
随机推荐
- less 动态样式语言
1.less的介绍 Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展 官方文档 2.less需要编译才能被浏览器解析 浏览器 ...
- 使用Python实现两组数据纵向排序
一.引言 在数据分析和处理过程中,排序是一项非常常见的操作.排序操作能够让我们更清晰地理解数据,从而进行进一步的分析和处理.在Python中,排序操作通常可以通过内置函数或第三方库来实现.本文将详细讲 ...
- NATS: 请求-响应消息
请求-回复消息 https://docs.nats.io/nats-concepts/core-nats/reqreply 请求-回复 在分布式系统中,请求-回复是一种常见的模式.发送请求之后,应用程 ...
- 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-8- 元素高级定位技巧(详细教程)
1.简介 随着网页的复杂性和动态性的增加,自动化测试变得越来越重要.Playwright作为一款强大的无头浏览器测试库,提供了多种元素定位方式,使得我们能够轻松地对网页进行自动化操作.在基础的定位方式 ...
- 区分PO、VO、 BO、 DTO、 POJO
分层领域模型规约: DO(Data Object):此结构与数据库表结构一一对应,通过DTO向上传输数据源对象. DTO(Data Transfer Object):数据传输对象,Service ...
- Qt编写嵌入式linux输入法/支持自定义词语和繁体/支持wayland和watson/纯QWidget/界面精美可换肤
一.功能特点 纯QWidget编写,原创输入法机制,没有任何第三方动态库的依赖. 支持各种Qt版本,包括Qt4.Qt5.Qt6及后续版本. 支持各种编译器,包括mingw.msvc.gcc.clang ...
- Vetur can't find `tsconfig.json` or `jsconfig.json` in XXX
vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾
- Linux服务器环境安装mysql
背景 1.安装环境:kvm虚拟机 2.运行环境:linux 3.架构:x86 4.安装mysql版本:mysql-5.7 1.安装准备 # Mysql官网 https://downloads.mysq ...
- Solution -「LOCAL」Minimal DFA
\(\mathscr{Description}\) Private link. 令 \(\Sigma=\{\texttt a,\texttt b\}\),对于所有形式语言 \(L\subset ...
- C# HOOK 键盘事件
C# HOOK 键盘事件 /* by: wgscd date:2023-8-15 desc: test hook in c# */ using System; using System.Collect ...