离散化+树状数组

求当前位之前是否有k位比它大

这样的话它就需要前移k位

剩下的按照原来的顺序依次填入

其实我觉得sort一下就可以做出来了

太久没写树状数组了

所以写了一下树状数组

#include <bits/stdc++.h>

using namespace std;
const int maxn = ;
int n, k;
int bit[maxn];
struct data{
int x,id;
}a[maxn];
int rk[maxn],f[maxn],ans[maxn]; inline int lowbit(int x){return x & (-x);}
bool cmp(data a, data b){return a.x < b.x;} void add(int pos, int x)
{
if(pos < ) return;
while(pos <= n){
bit[pos] += x;
pos += lowbit(pos);
}
} int query(int pos)
{
int ret = ;
while(pos >= ){
ret += bit[pos];
pos -= lowbit(pos);
}
return ret;
} int main()
{
cin >> n >> k;
for(int i=;i<=n;i++){
scanf("%d", &a[i].x);
a[i].id = i;
}
sort(a+,a+n+,cmp); rk[a[].id]=; for(int i=;i<=n;i++)
if(a[i].x==a[i-].x)rk[a[i].id]=rk[a[i-].id];
else rk[a[i].id]=i; for(int i=;i<=n;i++){
add(rk[i],);
f[i]=query(n)-query(rk[i]);
if(f[i]>k)ans[i-k]=a[rk[i]].x;
}
int tmp=;
for(int i=;i<=n;i++)
if(f[a[i].id]<=k){
while(tmp<=n&&ans[tmp])++tmp;
ans[tmp]=a[i].x;
}
for(int i=;i<=n;i++)
printf("%d\n",ans[i]);
return ;
}

BZOJ 5170: Fable的更多相关文章

  1. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  2. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  3. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  4. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  5. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  6. 【sdoi2013】森林 BZOJ 3123

    Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...

  7. 【清华集训】楼房重建 BZOJ 2957

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  8. 【splay】文艺平衡树 BZOJ 3223

    Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3  ...

  9. bzoj 刷水

    bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...

随机推荐

  1. 安全运维 - Windows系统维护

    Windows系统加固 账户管理和啊认证授权 日志配置操作 IP协议安全配置:启用SYN攻击保护 文件权限 服务安全 安全选项:启动安全选项.禁用未登录前关机 其他安全配置: 防病毒管理.设置屏幕保护 ...

  2. 深度探索区块链/基于Gossip的P2P数据分发(4)

    一.概述 背书节点模拟执行签名的结果会经过排序服务(Ording service)广播给所有的节点. 它提供的是一种原子广播服务(Atomic Broadcast),即在逻辑上所有节点接收到的消息顺序 ...

  3. xmake v2.1.9版本发布,增加可视化图形菜单配置

    此版本主要增加xmake f --menu实现用户自定义图形菜单配置,界面风格类似linux的make menuconfig: [图片上传失败-(image-505bc0-1517795319124) ...

  4. WOJ#4709 迷路

    WOJ#4709 迷路 题目描述 dolls意外得到了一张藏宝图,于是他踏上了寻找宝藏的道路.在走了许多许多步,回到同一个位置以后,dolls确定自己迷路了.dolls十分生气,他觉得自己这么英明圣武 ...

  5. VBA中如何用environ$ 或 environ方法取得环境变量?

    用索引号取得环境变量Sub EnumSEVars() Dim strVar As String Dim i As Long strVar = Environ$(i) & Then Exit F ...

  6. SpringMVC Controller单例和多例(转)

    首先上测试代码 import org.springframework.context.annotation.Scope; import org.springframework.stereotype.C ...

  7. SQLServer查看及设置最大连接数

    很多时候自己本地开发会遇到 ,打开几个连接正常访问 之后就报错误,这时候需要调整sqlserver 最大连接数. 1. 查询最大连接数 SELECT value_in_useFROM sys.conf ...

  8. ASP.NET MVC @html帮助类

    原文:https://www.cnblogs.com/caofangsheng/p/10462494.html HTML Helpers是用来创建HTML标签进而创建HTML控件的.HTML Help ...

  9. EPROCESS ETHREAD PEB重要成员

    -----------------------------------------------------------------------win7 x86中-------------------- ...

  10. 01-HTML控件

    1.HTML (常用标签 网页的基本结构)2.CSS (常用样式 网页的显示效果)3.JavaScript (用户交互效果 动态效果)4.jQuery (JavaScript库 简化原生js操作)5. ...