2018.11.01 loj#2319. 「NOIP2017」列队(线段树)
传送门
唉突然回忆起去年去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」列队(线段树)的更多相关文章
- loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点
loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 ...
- LOJ 2551 「JSOI2018」列队——主席树+二分
题目:https://loj.ac/problem/2551 答案是排序后依次走到 K ~ K+r-l . 想维护一个区间排序后的结果,使得可以在上面二分.求和:二分可以知道贡献是正还是负. 于是想用 ...
- LOJ #2005. 「SDOI2017」相关分析 线段树维护回归直线方程
题目描述 \(Frank\) 对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度.颜色等等,进而估算出星星的距离,半径等等. \(Frank\) 不仅喜欢观测,还喜欢分析观测到的 ...
- LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset
题目:https://loj.ac/problem/2312 https://www.luogu.org/problemnew/show/P3733 原本以为要线段树分治+LCT,查了查发现环上的值直 ...
- 2018.08.01 BZOJ4552: [Tjoi2016&Heoi2016]排序(二分+线段树)
传送门 线段树简单题. 二分答案+线段树排序. 实际上就是二分答案mid" role="presentation" style="position: relat ...
- bzoj5518 & loj3046 「ZJOI2019」语言 线段树合并+树链的并
题目传送门 https://loj.ac/problem/3046 题解 首先问题就是问有多少条路径是给定的几条路径中的一条的一个子段. 先考虑链的做法. 枚举右端点 \(i\),那么求出 \(j\) ...
- 2018.09.01 loj#2330. 「清华集训 2017」榕树之心(树形dp)
传送门 树形dp好题啊. 我们用w[i]" role="presentation" style="position: relative;">w[ ...
- 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][ ...
- loj 2955 「NOIP2018」保卫王国 - 树链剖分 - 动态规划
题目传送门 传送门 想抄一个短一点ddp板子.然后照着Jode抄,莫名其妙多了90行和1.3k. Code /** * loj * Problem#2955 * Accepted * Time: 26 ...
随机推荐
- Python+Selenium学习--鼠标事件
场景 前景讲解了鼠标的click()事件,而我们在实际的web产品测试中,有关鼠标的操作,不仅仅只有单击,有时候还包括右击,双击,拖动等操作,这些操作包含在ActionChains类中. Action ...
- laravel框架中报错 DataTables warning: table id=xxx-table - Cannot reinitialise DataTable.
laravel框架中报错 DataTables warning: table id=xxx-table - Cannot reinitialise DataTable. 分析: initializin ...
- UFPS入门: Unity FPS 教程
http://blog.csdn.net/kmyhy/article/details/72846348 UFPS : Ultimate FPS v1.7.3 download:https://item ...
- Leading and Trailing (数论)
Leading and Trailing https://vjudge.net/contest/288520#problem/E You are given two integers: n and k ...
- android项目安装报错:INSTALL_FAILED_CONFLICTING_PROVIDER
这主要是由于调试的环境中已有一个同名的Provider存在. 解决方法是修改AndroidManifest.xml中的 <provider android:name="applockP ...
- solrj 测试连接 6.6.5solr集群
我开始环境是 linux上是6.6.5 pom也是6.6.5 按照学习视频的demo,他用的是4点几的solr,我换成了6点几的,没有CloudSolrServer 只有CloudSolrClie ...
- golang sync.Pool包的使用和一些注意地方
package main; import ( "sync" "fmt" "net" "runtime" ) //sync ...
- Linux用7zip解压缩分卷文件
背景:在服务器迁移过程中,有大量非结构化文件(主要是office文档和图片),目录结构太大,高达80-100G,传输耗时且容易受网络 等其他原因意外中断,以致于传输失败,于是采用分卷压缩,即使传输失败 ...
- IDEA安装小配置
1. view-->toolbar+toolbuttons 2. 根据大小写IDEA能准确提示 配置自动导入包 定义代码模板 提示忽略大小写 配置虚拟机内存,修改idea64.exe.vmopt ...
- 求助Ubuntu16.10如何设置默认启动为字符界面
字符界面:sudo systemctl set-default multi-user.target图形界面:sudo systemctl set-default graphical.target