一直忘了发,现在赶快补

用权值线段树维护有人的位置,动态开点省空间

多加的人用个vector存下来就可以了

#include<bits/stdc++.h>
#define ui unsigned int
#define ll long long
#define db double
#define ld long double
#define ull unsigned long long
const int MAXN=300000+10;
int n,m,q,N;
std::vector<ll> V[MAXN];
template<typename T> inline void read(T &x)
{T data=0,w=1;char ch=0;while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();if(ch=='-')w=-1,ch=getchar();while(ch>='0'&&ch<='9')data=((T)data<<3)+((T)data<<1)+(ch^'0'),ch=getchar();x=data*w;
}
template<typename T> inline void write(T x,char ch='\0')
{if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0');if(ch!='\0')putchar(ch);
}
template<typename T> inline void chkmin(T &x,T y){x=(y<x?y:x);}
template<typename T> inline void chkmax(T &x,T y){x=(y>x?y:x);}
template<typename T> inline T min(T x,T y){return x<y?x:y;}
template<typename T> inline T max(T x,T y){return x>y?x:y;}
#define Mid ((l+r)>>1)
#define lson l,Mid
#define rson Mid+1,r
struct Segment_Tree{int sum[MAXN<<5],lc[MAXN<<5],rc[MAXN<<5],root[MAXN<<5],cnt;inline void Update(int &rt,int l,int r,int ps){if(!rt)rt=++cnt;sum[rt]++;if(l==r)return ;else{if(ps<=Mid)Update(lc[rt],lson,ps);else Update(rc[rt],rson,ps);}}inline int Query(int rt,int l,int r,int k){if(l==r)return l;else{int t=Mid-l+1-sum[lc[rt]];if(t>=k)return Query(lc[rt],lson,k);else return Query(rc[rt],rson,k-t);}}
};
Segment_Tree T;
#undef Mid
#undef lson
#undef rson
int main()
{freopen("phalanx.in","r",stdin);freopen("phalanx.out","w",stdout);read(n);read(m);read(q);N=max(n,m)+q;while(q--){int x,y;read(x);read(y);ll now;if(y==m){T.Update(T.root[n+1],1,N,now=T.Query(T.root[n+1],1,N,x));now=now<=n?1ll*now*m:V[n+1][now-n-1];V[n+1].push_back(now);write(now,'\n');}else{T.Update(T.root[x],1,N,now=T.Query(T.root[x],1,N,y));now=now<m?1ll*(x-1)*m+now:V[x][now-m];V[n+1].push_back(now);write(now,'\n');T.Update(T.root[n+1],1,N,now=T.Query(T.root[n+1],1,N,x));now=now<=n?1ll*now*m:V[n+1][now-n-1];V[x].push_back(now);}}return 0;
}

转载于:https://www.cnblogs.com/hongyj/p/9345935.html

【比赛】NOIP2017 列队相关推荐

  1. NOIP2017 列队

    https://www.luogu.org/problemnew/show/P3960 p<=500 50分 模拟 每个人的出队只会影响当前行和最后一列 p<=500,有用的行只有500行 ...

  2. NOIP2017 列队——动态开点线段树

    Description: Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有n×m名学生,方阵的行数为  ...

  3. [noip2017]列队 splay

    noip出这个题简直丧心病狂,省选都没考过这么恶心的splay 这个题思路不是很难找,要点只有两个:特殊数据和动态结构 首先纵向发生变化的一定是最右边的一列,所以它是特殊的 然后询问只有1e5 ,而矩 ...

  4. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  5. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  6. 【学习笔记】Splay

    普通平衡树 模板题链接 1.引入 一种二叉树,这棵树满足任意一个节点,它的左儿子的权值<自己的权值<右儿子的权值 这种树叫做二叉查找树,这个概念应该在初赛中见过了吧 Splay就是利用这个 ...

  7. NOIP2017提高组比赛总结

    NOIP2017提高组比赛总结 前言 转眼间,NOIP2017(经常叫他NOIP,其实全称是全国青少年信息学奥林匹克联赛)就这么过去了.回望这2个月,既有参加NOIP的激动,也有赛场上一些失利的遗憾. ...

  8. 【NOIP题解】NOIP2017 TG D2T3 列队

    列队,NOIP2017 TG D2T3. 树状数组经典题. 题目链接:洛谷. 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. ...

  9. 【NOIP2017提高组】列队

    题目背景 NOIP2017提高组 DAY2 T3 题目描述 Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵.Sylvia 所在的方阵中 ...

  10. JZOJ 5478. 【NOIP2017提高组正式赛】列队

    Description Sylvia 是一个热爱学习的女孩子.前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia所在的方阵中有n × m名学生,方阵的行数为 n, ...

最新文章

  1. 一台古老电脑之维修记
  2. scala版本的springboot的helloworld实验记录(转载+自己验证整理)
  3. 优化委托的 DynamicInvoke
  4. redis aof 备份和恢复_Redis 持久化机制的介绍,了解这些流程很重要
  5. c2java Greedy 之任务调度
  6. php gdb strace抓包,Linux上进程追踪与调试(strace和gdb)
  7. 白话基础之虚拟存储器
  8. 【vjudge contest 418548】2021 BUAA Winter Training 3(Private),签到题ABCDG
  9. imx6ull ccm时钟体系
  10. SSM框架整合,简单案例
  11. 怎样使用WP Review Pro插件?
  12. 嵌入式lab3——自行车码表
  13. MsgBox函数用法小结
  14. libreoffice安装教程_Plasma 5.15.4+Ubuntu19.04 Kubuntu 19.04虚拟机安装和试用
  15. win10字体安装_WIN10美化:一键更换系统字体!
  16. android 剪切板监听_android剪切板操作
  17. 那些年遇到的后台返回的奇葩json数据
  18. 你的微信消息是怎么发出去的?
  19. 漂亮的实力派 Ant Design Pro 2.0 正式发布
  20. 知识星球(原小密圈)有哪些技术类星球值得推荐?

热门文章

  1. maven项目转换成dynamic项目
  2. (C++)虚函数表解析(转)
  3. 数组去重和两个数组求交集
  4. UAC在注册表中的对应位置
  5. dedecms(织梦) arclist 标签的使用
  6. C#特性 学习笔记(对象初始化器 匿名类型 扩展方法)
  7. 【推荐系统】推荐系统研究中常用的评价指标
  8. 干货 | attention超全综述
  9. 谷歌高频面试题-较小的三数之和
  10. 村上隆首场中国直播,火山同传打造“影院级字幕”