当前位置: 首页 > news >正文

[树状数组]JZOJ 4658 小Z调顺序

Description

 

Input

Output

 

Sample Input

3 1
2 2 1

Sample Output

1
 

Data Constraint

分析

简单的树状数组求逆序对,答案等于逆序对数-k,注意当k大于逆序对数输出零

 

#include <iostream>
#include <cstdio>
#include <memory.h>
#include <algorithm>
#define lowbit(x) x&-x
using namespace std;
typedef long long ll;
const int N=1e5+10;
ll t[N],a[N],b[N],k;
int n,cnt;

void Add(int x) {
    for (int i=x;i<N;i+=lowbit(i)) t[i]++;
}

ll Query(int x) {
    ll ans=0;
    for (int i=x;i;i-=lowbit(i)) ans+=t[i];
    return ans;
}

int main() {
    scanf("%d%lld",&n,&k);
    for (int i=1;i<=n;i++) scanf("%lld",&a[i]);
    memcpy(b,a,sizeof b);sort(b+1,b+n+1);cnt=unique(b+1,b+n+1)-b-1;
    for (int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+cnt+1,a[i])-b;
    ll ans=0;
    for (int i=n;i;i--) {
        ans+=Query(a[i]-1);Add(a[i]);
    }
    printf("%lld",max(ans-k,0ll));
}
View Code

 

转载于:https://www.cnblogs.com/mastervan/p/10770615.html

相关文章:

  • 1.1(设计模式)工厂模式
  • Redis 桌面管理工具 RedisDesktopManager 2019.0 发布
  • nginx统计日志中客户端ip访问次数
  • MGR实现分析 - 成员管理与故障恢复实现
  • Android性能优化之内存优化
  • Vmware10中Centos7挂载Windows主机的共享文件夹,提示:Error: cannot mount filesystem: No such device...
  • 如何优化代码中大量的if/else,switch/case?
  • 浏览器的渲染原理简介
  • webpack(2)
  • [ZJOI2019]语言
  • 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
  • LeetCode--047--全排列 II(java)
  • Javascript 模块化指北
  • Hadoop高可用原理及环境搭建
  • BBS项目
  • GitUp, 你不可错过的秀外慧中的git工具
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Mithril.js 入门介绍
  • python3 使用 asyncio 代替线程
  • text-decoration与color属性
  • 安装python包到指定虚拟环境
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 给初学者:JavaScript 中数组操作注意点
  • 聊聊sentinel的DegradeSlot
  • 七牛云假注销小指南
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 阿里云移动端播放器高级功能介绍
  • ​HTTP与HTTPS:网络通信的安全卫士
  • $.ajax,axios,fetch三种ajax请求的区别
  • (2)nginx 安装、启停
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (zt)最盛行的警世狂言(爆笑)
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (一)基于IDEA的JAVA基础1
  • (一)为什么要选择C++
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • . NET自动找可写目录
  • ./configure、make、make install 命令
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET 使用配置文件
  • /etc/motd and /etc/issue
  • :not(:first-child)和:not(:last-child)的用法
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @hook扩展分析
  • @RequestParam详解
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [acm算法学习] 后缀数组SA
  • [Android] 修改设备访问权限
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [BUG] Authentication Error
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C/C++]数据结构 栈和队列()
  • [C++]四种方式求解最大子序列求和问题