传送门

唉突然回忆起去年去noipnoipnoip提高组试水然后省二滚粗的悲惨经历。。。

往事不堪回首。

所以说考场上真的有debuffdebuffdebuff啊!!!虽然当时我也不会权值线段树

这道题直接上权值线段树维护nnn行和第mmm列就行了。

原因?

这是因为每次修改只会影响到某一行和最后一列。

但直接跑是会炸空间的。

因此我们动态开点来操作一波就行了。

对于被删除的点我们存到vectorvectorvector里面就行。

代码:

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int ans=0;
	char ch=getchar();
	while(!isdigit(ch))ch=getchar();
	while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
	return ans;
}
typedef long long ll;
const int N=600005;
vector<ll>g[N];
int siz[N*50],rt[N],son[N*50][2],n,m,q,tot=0;
ll lim;
inline void update(int&p,int l,int r,int k){
	if(!p)p=++tot;
	++siz[p];
	if(l==r)return;
	int mid=l+r>>1;
	if(k<=mid)update(son[p][0],l,mid,k);
	else update(son[p][1],mid+1,r,k);
}
inline int query(int p,int l,int r,int k){
	if(l==r)return l;
	int mid=l+r>>1,sum=mid-l+1-siz[son[p][0]];
	if(sum>=k)return query(son[p][0],l,mid,k);
	return query(son[p][1],mid+1,r,k-sum);
}
inline ll modifr(int x,ll v){
	int k=query(rt[n+1],1,lim,x);
	update(rt[n+1],1,lim,k);
	ll ret=k<=n?(ll)k*m:g[n+1][k-n-1];
	return g[n+1].push_back(v?v:ret),ret;
}
inline ll modifl(int px,int py){
	int k=query(rt[px],1,lim,py);
	update(rt[px],1,lim,k);
	ll ret=k<m?(ll)(px-1)*m+k:g[px][k-m];
	return g[px].push_back(modifr(px,ret)),ret;
}
int main(){
	n=read(),m=read(),q=read(),lim=max(n,m)+q;
	for(int i=1,x,y;i<=q;++i)x=read(),y=read(),printf("%lld\n",(y==m)?modifr(x,0):modifl(x,y));
	return 0;
}

2018.11.01 loj#2319. 「NOIP2017」列队(线段树)的更多相关文章

  1. loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点

    loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 ...

  2. LOJ 2551 「JSOI2018」列队——主席树+二分

    题目:https://loj.ac/problem/2551 答案是排序后依次走到 K ~ K+r-l . 想维护一个区间排序后的结果,使得可以在上面二分.求和:二分可以知道贡献是正还是负. 于是想用 ...

  3. LOJ #2005. 「SDOI2017」相关分析 线段树维护回归直线方程

    题目描述 \(Frank\) 对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度.颜色等等,进而估算出星星的距离,半径等等. \(Frank\) 不仅喜欢观测,还喜欢分析观测到的 ...

  4. LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset

    题目:https://loj.ac/problem/2312 https://www.luogu.org/problemnew/show/P3733 原本以为要线段树分治+LCT,查了查发现环上的值直 ...

  5. 2018.08.01 BZOJ4552: [Tjoi2016&Heoi2016]排序(二分+线段树)

    传送门 线段树简单题. 二分答案+线段树排序. 实际上就是二分答案mid" role="presentation" style="position: relat ...

  6. bzoj5518 & loj3046 「ZJOI2019」语言 线段树合并+树链的并

    题目传送门 https://loj.ac/problem/3046 题解 首先问题就是问有多少条路径是给定的几条路径中的一条的一个子段. 先考虑链的做法. 枚举右端点 \(i\),那么求出 \(j\) ...

  7. 2018.09.01 loj#2330. 「清华集训 2017」榕树之心(树形dp)

    传送门 树形dp好题啊. 我们用w[i]" role="presentation" style="position: relative;">w[ ...

  8. 2018.10.20 loj#2593. 「NOIP2010」乌龟棋(多维dp)

    传送门 f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示用iii张111,jjj张222,kkk张333,lll张444能凑出的最大贡献. 然后从f[i−1][j][ ...

  9. loj 2955 「NOIP2018」保卫王国 - 树链剖分 - 动态规划

    题目传送门 传送门 想抄一个短一点ddp板子.然后照着Jode抄,莫名其妙多了90行和1.3k. Code /** * loj * Problem#2955 * Accepted * Time: 26 ...

随机推荐

  1. 牛客练习赛19 E和F(签到就走系列)托米的饮料+托米搭积木

    E题传送门:点我 F题传送门:点我 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮料托米无 ...

  2. 再谈AR中的图像识别算法

    之前在<浅谈移动平台创新玩法>简单的猜测了easyar中使用的图像识别算法,基于图片指纹的哈希算法的图片检索 .后再阿里引商大神的指点下,意识到图片检测只适用于静态图片的识别,只能做AR脱 ...

  3. 安装tensorflow ubuntu18.04

    1.首先安装环境是ubuntu18.04. $sudo apt-get install python-pip python-dev python-virtualenv2.安装virtualenv虚拟环 ...

  4. c++实现循环队列

    #include <iostream> #include<stdio.h> #include<stdlib.h> using namespace std; ;// ...

  5. f5 Seldom used

    1.负载均衡算法 2)最快响应速度(Fastest) •优先查看7层请求的连接数,然后查看4层连接数 •需要在virtual server上关联7层的profile,否则与最小连接数相同 •后台服务器 ...

  6. 联机分析处理ROLAP、MOLAP和HOLAP区别(转)

    OLAP(on-Line Analysis Processing)是使分析人员.管理人员或执行人员能够从多角度对信息进行快速.一致.交互地存取,从而获得对数据的更深入了解的一类软件技术.OLAP的目标 ...

  7. http406错误

    The resource identified by this request is only capable of generating responses with characteristics ...

  8. java正则表达式(regular)

    哎呀妈呀,脑瓜疼----正则表达式 正则是用来处理复杂文本类型的 标准字符集合: \d --->代表0-9任意一个数字 \D ---->除了数字之外的任意字符 \w ----->字母 ...

  9. golang语言中sync/atomic包的学习与使用

    package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级 ...

  10. js数据类型和变量

    Number JavaScript不区分整数和浮点数,统一用Number表示: 123 0.345 -99 NaN 当无法计算结果时用NaN表示 Infinity 表示无限大,当数值超过js的Numb ...