Codeforces - Serge and Dining Room
题目链接:Codeforces - Serge and Dining Room
就是大于等于x的商品个数 > 大于等于x的小朋友的钱的个数。
那么我们建立权值线段树,在a[i]的地方放1,b[i]的地方放-1。
只要存在某个后缀大于0,那么就合法,我们就需要找到最后的那个位置。
这个问题有两种方法:维护最大后缀和,单点修改。或者直接先从后往前做前缀和,区间修改+区间max。
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e6+10;
int n,m,a[N],b[N],q,up=1e6;
int mx[N<<2],lazy[N<<2];
inline void push_down(int p){if(!lazy[p]) return ;mx[p<<1]+=lazy[p],mx[p<<1|1]+=lazy[p];lazy[p<<1]+=lazy[p],lazy[p<<1|1]+=lazy[p];lazy[p]=0;
}
void change(int p,int l,int r,int ql,int qr,int v){if(l==ql&&r==qr){mx[p]+=v,lazy[p]+=v; return ;}int mid=l+r>>1; push_down(p);if(qr<=mid) change(p<<1,l,mid,ql,qr,v);else if(ql>mid) change(p<<1|1,mid+1,r,ql,qr,v);else change(p<<1,l,mid,ql,mid,v),change(p<<1|1,mid+1,r,mid+1,qr,v);mx[p]=max(mx[p<<1],mx[p<<1|1]);
}
int ask(int p,int l,int r){if(l==r) return l;int mid=l+r>>1; push_down(p);if(mx[p<<1|1]>0) return ask(p<<1|1,mid+1,r);else return ask(p<<1,l,mid);
}
signed main(){cin>>n>>m;for(int i=1;i<=n;i++) scanf("%d",&a[i]),change(1,1,up,1,a[i],1);for(int i=1;i<=m;i++) scanf("%d",&b[i]),change(1,1,up,1,b[i],-1);cin>>q;for(int i=1,op,x,y;i<=q;i++){scanf("%d %d %d",&op,&x,&y);if(op==1) change(1,1,up,1,a[x],-1),change(1,1,up,1,a[x]=y,1);else change(1,1,up,1,b[x],1),change(1,1,up,1,b[x]=y,-1);if(mx[1]<=0) puts("-1");else printf("%d\n",ask(1,1,up));}return 0;
}
Codeforces - Serge and Dining Room相关推荐
- Codeforces 1179C Serge and Dining Room 线段树
Serge and Dining Room 改变选的顺序, 最后的结果不变. 这种题一般都和前缀和有关, 建个线段树维护前缀和就好了. #include<bits/stdc++.h> #d ...
- 【CF1179 A,B,C】Valeriy and Deque / Tolik and His Uncle / Serge and Dining Room
还好题很温柔,温柔得我差点没做完 文章目录 A:Valeriy and Deque 题意 题解 代码实现 B:Tolik and His Uncle 题目 题解 代码实现 C:Serge and Di ...
- 有趣题目和认知合集(持续更新)
写写对一些算法的理解,挂几个有意思的题,可能也会挂几个板子题 算法理解偏向于能懂即可,没有严格的证明 快乐几何 [1.2]Volatile Kite 点到直线 快乐搜与暴力 [2.4]Short Co ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
最新文章
- web.config中sessionState节点的配置方案
- BSP二叉树的数学原理(绝对原创)
- 洪嘉振 计算多体系统动力学pdf_如何在多体动力学模型中评估齿轮啮合刚度
- [51nod1773]A国的贸易
- 分析数据库CitusDB:提供弹性计算能力
- 机器学习笔记——逻辑回归(Logistic Regression)
- 片段中未调用onActivityResult
- Java基础:Collection集合、Iterator迭代器以及泛型
- asp.net有效使用缓存(转)
- Python3快速入门——(2)list和tuple(列表和元组)
- 联发科MT6763芯片设计,MT6763参考设计,MT6763处理器资料
- 人脸对齐--采用dlib库的68_face_landmark进行人脸对齐操作
- 魔兽世界选择服务器未响应,魔兽世界7.0军团再临常见技术性问题解决方案汇总...
- 已解决ValueError: Of the four parameters: start, end, periods, and freq, exactly three must be specifie
- Python操控鼠标和键盘
- 09.7. 序列到序列学习(seq2seq)
- /etc/profile 和 /etc/profile.d/ 的区别
- 大数据、人工智能如何助力市场监管?专家们这样说
- html 设置卯位置,周易基础知识:十二地支之卯木
- Dots Entity 删除