2022.11.17 HDU-4911 Inversion

news2024/11/24 20:58:54

bobo has a sequence a1,a2,…,an. He is allowed to swap two adjacent numbers for no more than k times.

Find the minimum number of inversions after his swaps.

Note: The number of inversions is the number of pair (i,j) where 1≤i<j≤n and ai>aj.

 Input

 The input consists of several tests. For each tests:

The first line contains 2 integers n,k (1≤n≤105,0≤k≤109). The second line contains n integers a1,a2,…,an (0≤ai≤109).

 Output

For each tests:

A single integer denotes the minimum number of inversions.

Sample 

Input

3 1
2 2 1
3 0
2 2 1

Output

 1
2

原题链接:传送门     

题意:求逆序对数

求逆序对数,这题有两种很好的做法一个是树状数组另一个就是归并排序。

最朴素的做法是O(n^2)的纯暴力,这里推荐归并排序的求法时间复杂度为O(nlogn)

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 9;
int n, m, ans, q[N], t[N];

void csort(int l, int r) {
	if (l == r) return;
	int mid = l + r >> 1;
	csort(l, mid), csort(mid + 1, r);
	int k = 0, i = l, j = mid + 1;
	while (i <= mid && j <= r) {
		while (q[i] <= q[j] && i <= mid) t[k++] = q[i++];
		while (q[i] > q[j] && j <= r) t[k++] = q[j++], ans += mid - i + 1;
	}
	while (i <= mid) t[k++] = q[i++];
	while (j <= r) t[k++] = q[j++];
	for (int i = l, j = 0; j < k; i++, j++) q[i] = t[j];
}

signed main() {
	while (~scanf("%lld%lld", &n, &m)) {
		ans = 0; 
		for (int i = 1; i <= n; i++) scanf("%lld", &q[i]);
		csort(1, n);
		if (ans <= m) printf("0\n");
		else printf("%lld\n", ans - m);
	}
	return 0;
}

可以看到时间复杂度还是很可观的。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node篇 CommonJS规范

文章目录1. 每个文件就是一个模块&#xff0c;有自己的作用域。在一个文件里面定义的变量、函数、类&#xff0c;都是私有的&#xff0c;对其他文件不可见。2. 每个模块内部&#xff0c;module变量代表当前模块。3. 两种导出方式 exports 和 module.exports4. 一种引入方式 req…

腾讯云轻量应用服务器搭配WordPress程序使用宝塔面板一键式搭建个人博客网站

你想要拥有一个自己的网站吗&#xff0c;不在受第三方网站的约束&#xff0c;自由撰写文章帖子&#xff0c;随时随地发挥你的想象。其实搭建一个个人网站没有那么麻烦&#xff0c;完全小白用户也可以办到&#xff0c;只需要点点鼠标就可以完成&#xff0c;下面就详细介绍使用腾…

计网实验软件 Cisco Packet Tracer 8 获取并汉化

1. 注册账号 点击&#xff1a;https://skillsforall.com/course/getting-started-cisco-packet-tracer 进入 Skills for All 网站. 点击 Get Started&#xff0c;进入登录页 点击 Sign Up 注册&#xff0c;选择国家、出生年月&#xff0c;填写其他信息。 这里顺带放一下密码的…

HOOPS/QT集成指南

引言 以下部分&#xff0c;说明如何使用QtGUI工具包和HOOPS 3D应用程序框架构建应用程序。首先回顾编译/链接&#xff0c;然后讨论各个组件中的对象关系&#xff0c;然后概述正确创建和初始化对象以及启动Qt事件循环所需的编程步骤。 开发人员应该首先编译、链接和运行基本的q…

【11-导入人人generator项目并自动生成相关的文件商品子模块的调试公共模块common子模块的抽离与实现Lombok插件的安装】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

UDS知识整理(四):ECU复位——0x11服务

目录 一、0x11服务&#xff08;ECU复位&#xff09;简介 二、0x11服务信息格式 &#xff08;1&#xff09;请求格式 &#xff08;2&#xff09;正响应格式 &#xff08;3&#xff09;负响应格式 三、0x11服务举例 &#xff08;1&#xff09;如&#xff1a;硬件复位 &am…

戴尔PowerEdge R650服务器荣获国家级实验室5项证书

在今年的戴尔科技峰会上&#xff0c;IDC中国副总裁兼首席分析师武连峰的报告引起了广泛关注&#xff0c;他表示&#xff1a; “根据IDC对全球企业CEO调研&#xff0c;在CEO关注的重点中&#xff0c;技术依然排在第一位&#xff0c;然后是效率和增长。88%的全球CEO在2022年会维…

[附源码]java毕业设计龙虎时代健身房管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

知乎高赞:听说Rust要取代C++?

随着近几年Rust的大火&#xff0c;越来越多的人开始质疑&#xff0c;Rust势头这么猛&#xff0c;是不是要取代C?小慕认为&#xff0c;一门编程语言想要完全取代另一门编程语言是很难的&#xff0c;毕竟每一门技术都有它的专属优势和特点&#xff0c;总会在特别的地方发光发热。…

linux 不依赖xcode成功运行appium+ios自动化

一、原理 **1、【常规】**常规情况下&#xff0c;ios自动化需要mac机器&#xff0c;如果强行使用linux运行&#xff0c;过程会提示Xcodebuild Failure&#xff0c;也就是强依赖Xcode。 失败图如下&#xff1a; **2、【思路】**那有没有什么方法可以绕过xcode的限制呢&#xf…

创建SpringBoot项目的几种方式

使用 spring boot 提供的初始化器。 向导的方式&#xff0c;完成 spring boot 项目的创建&#xff1a; 使用 方便.(需要联网)就是下图这个,在pom.xml里 选择依赖,选择些单体SpringBoot需要用到的一些 Spring Web包含SpringMVC Tomcat SQL 基本的JDBC MysqlDriver Mybatis 第…

发电控制系统面临的主要安全威胁

电力行业 工控安全解决思路保障框架从电力行业对工控安全需求看&#xff0c;电力企业在主要是以合规性建设为主&#xff0c;在 2004 年原电监会 5 号令颁布开始&#xff0c;大部 分的电厂控制系统安全 建设已经按照 5 号令的要求进行了整改&#xff0c;形成“安全分区、网络专…

再手写线程池以及性能分析

文章目录前言一、为什么要用线程池线程池的作用线程池的使用场景二、线程池的构成以及相关API的实现线程池中的相关变量类型线程池的创建任务线程实现获取任务线程池的销毁线程池的使用前言 以前写的线程池文章请参考&#xff1a;线程池的简单实现 本次文章是对线程池的再次学…

使用Egg调用mysql实现增删改查接口操作

市场上数据库可视化工具很多&#xff0c;笔者更多时间使用的是 Navicat ,但是因为它是收费的&#xff0c;一些伙伴可能没发使用&#xff0c;所以笔者在这里推荐一款 工具 名为&#xff1a; DBevaer&#xff0c;它所展现出来的能力&#xff0c;与navicat 类似&#xff0c;并且还…

玩RTOS这么久,一问原子操作,蒙了~

已剪辑自: https://mp.weixin.qq.com/s/kvxcOHT-xHtMAjQqJu7Y2g [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C3f9Rrei-1668695258073)(https://res.wx.qq.com/mmbizappmsg/zh_CN/htmledition/js/images/icon/audio/icon_qqmusic_source6201b5.sv…

代码随想录——钥匙和房间(图论)

题目 有 N 个房间&#xff0c;开始时你位于 0 号房间。每个房间有不同的号码&#xff1a;0&#xff0c;1&#xff0c;2&#xff0c;…&#xff0c;N-1&#xff0c;并且房间里可能有一些钥匙能使你进入下一个房间。 在形式上&#xff0c;对于每个房间 i 都有一个钥匙列表 rooms[…

tft lcd spi 驱动

tft lcd spi 驱动参考驱动uc1701SPI设备树配置背光控制IO设备树配置SPI控制引脚配置参考驱动uc1701 linux-4.1.15-imx6ul/drivers/staging/fbtftSPI设备树配置 根据原理图修改对应引脚 linux-3.10/arch/arm/boot/dts/sun8iw11p1-pinctrl.dtsi 蔽掉引脚冲突功能 linux-3.10/ar…

如何注册公司网站?【注册公司网站】

公司网站是很多公司的必备品&#xff0c;哪怕公司并不依赖线上业务&#xff0c;也会有自己的公司网站。随着互联网的发展成熟&#xff0c;其实现在注册公司网站基本上都是比较简单的&#xff0c;那么如何注册公司网站呢&#xff1f;下面给大家说一说。 一、注册公司网站前准备…

英伟达发布526.98 WHQL 显卡驱动,支持RTX 4080,三款即将上线游戏

11月16日&#xff0c;英伟达发布了526.98 WHQL 新驱动&#xff0c;支持最新发布的RTX 4080显卡。 新驱动为《蜘蛛侠:迈尔斯莫拉莱斯》、《战锤40k:暗潮》和《魔兽世界&#xff1a;巨龙时代》提供支持。此外&#xff0c;还支持《怪物猎人崛起》的DLAA更新和WRC世代-国际汽联WRC…

【FFmpeg】ffmpeg+nginx-rtmp实现视频流转发

1.应用场景 目前的摄像头厂家能提供出来的视频流格式有限&#xff0c;且chrome已经禁止了对flash的支持&#xff0c;导致像硬盘录像机这种只能提供rtsp格式流地址的摄像头无法接入Web应用&#xff0c;所以不得不对视频的流地址进行分发&#xff0c;通过代码对流地址中的数据进…