spoj8406
题解:
二分+树状数组
记录以下i在当前拍第几
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=;
int a[N],f1[N],f2[N],n,m,x,y,num[N];
int js(int x)
{
int ans=;
for (;x;x-=x&-x)ans+=num[x];
return ans;
}
void inster(int x,int y)
{
for (;x<=n;x+=x&-x)num[x]+=y;
}
int cmp(int x,int y)
{
return a[x]<a[y];
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)scanf("%d",&a[i]),f1[i]=f2[i]=i;
sort(f1+,f1+n+,cmp);
for (int i=;i<=n;i++)f2[f1[i]]=i;
for (int i=;i<=n;i++)inster(i,a[f1[i]]-a[f1[i-]]);
while (m--)
{
scanf("%d%d",&x,&y);
if (x==)
{
if (js(n)<y){puts("");continue;}
int l=,r=n;
while (l<r)
{
int mid=(l+r)/;
if (y>js(mid))l=mid+;
else r=mid;
}
printf("%d\n",n-l+);
}
if (x==)
{
if (js(n)<y)continue;
int l=,r=n;
while (l<r)
{
int mid=(l+r)/;
if (y>js(mid))l=mid+;
else r=mid;
}
inster(l,-);
}
if (x==)
{
int l=,r=n,k=js(f2[y]);
while (l<r)
{
int mid=(l+r+)/;
if (k<js(mid))r=mid-;
else l=mid;
}
swap(f1[f2[y]],f1[l]);
swap(f2[f1[f2[y]]],f2[f1[l]]);
inster(l,);
inster(l+,-);
}
}
}
spoj8406的更多相关文章
随机推荐
- 删除string类型字符串中指定字符串段
1.实现背景 在插入list行时用邮件的MessageID给对应行命名. 在回复全部邮件时,收件人变为之前收件人中出去“自己”同时加入之前发件人,抄送人还是之前的抄送人,密送人不用管,直接不用带. 在 ...
- Python3基础 str format 输出花括号{}
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- PHP中namespace和use使用详解
来源于:http://www.jb51.net/article/36389.htm 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误.这种 ...
- BZOJ5170: Fable 树状数组
Description 有这么一则传闻,O(nlogn)的排序发明之前,滋滋国的排序都是采用的冒泡排序.即使是冒泡排序,对当时的国民 来说也太复杂太难以理解,于是滋滋国出现了这样一个职业——排序使,收 ...
- [oracle复习] - Oracle
https://deadzq.github.io/oracle/Oracle.html 我的oracle笔记1 https://deadzq.github.io/oracle/Oracle2.html ...
- makefile 中的符号替换($@、$^、$<、$?)
Makefile $@, $^, $< $@ 表示目标文件$^ 表示所有的依赖文件$< 表示第一个依赖文件$? 表示比目标还要新的依赖文件列表 如一个目录下有如下文件: $ ls ...
- 样本打散后计算单特征 NDCG
单特征 NDCG 能计算模型的 NDCG,也就能计算单特征的 NDCG,用于评估单特征的有效性,跟 Group AUC 用途一样 单特征 NDCG 如何衡量好坏 如果是 AUC,越大于或小于 0.5, ...
- ubuntu server 多网卡
https://wenku.baidu.com/view/51fb15742f60ddccdb38a007.html
- Java成神之路技术整理
关于 Java 的技术干货,从以下几个方面汇总. Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 ...
- (转)c++一些知识点
异常详解: https://www.cnblogs.com/hdk1993/p/4357541.html#top 模版详解: https://blog.csdn.net/lezardfu/articl ...