AcWing逆序对的数量(Java)

news/2024/11/28 4:53:03/

给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。

逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。

输入格式

第一行包含整数 n,表示数列的长度。

第二行包含 n 个整数,表示整个数列。

输出格式

输出一个整数,表示逆序对的个数。

数据范围

1≤n≤100000,
数列中的元素的取值范围 [1,10^9]。

输入样例:
6
2 3 4 5 6 1
输出样例:
5
import java.util.Scanner;public class Main {static int[] q,stm;public static void main(String[] args) {Scanner scan=new Scanner(System.in);int len=scan.nextInt();q=new int[len];stm=new int[len];long ans=0;for(int i=0;i<len;i++){q[i]=scan.nextInt();}ans=msort(0,len-1);System.out.println(ans);}public static long msort(int l,int r){if(l>=r){return 0;}int mid=l+(r-l)/2;long res=msort(l,mid)+msort(mid+1,r);int k=0,i=l,j=mid+1;while(i<=mid&&j<=r){if(q[i]<=q[j]){stm[k]=q[i];k++;i++;}else{stm[k]=q[j];k++;j++;res+=mid-i+1;}}while(i<=mid){stm[k]=q[i];k++;i++;}while(j<=r){stm[k]=q[j];k++;j++;}for(int ki=l,kj=0;ki<=r;ki++,kj++){q[ki]=stm[kj];}return res;}
}


http://www.ppmy.cn/news/1324954.html

相关文章

Twincat PLC 跳出循环

在TwinCAT PLC编程中&#xff0c;要跳出循环结构通常可以通过以下几种方式实现&#xff1a; 使用Break指令&#xff1a; 在TwinCAT 3的PLC编程环境中&#xff08;IEC 61131-3标准&#xff09;&#xff0c;可以使用BREAK指令来立即终止最内层的循环。例如&#xff0c;在FOR或WH…

第一个 OpenGL 程序:旋转的立方体(VS2022 / MFC)

文章目录 OpenGL API开发环境在 MFC 中使用 OpenGL初始化 OpenGL绘制图形重置视口大小 创建 MFC 对话框项目添加 OpenGL 头文件和库文件初始化 OpenGL画一个正方形OpenGL 坐标系改变默认颜色 重置视口大小绘制立方体使用箭头按键旋转立方体深度测试添加纹理应用纹理换一个纹理 …

elemeentui el-table封装

elemeentui el-table封装 <template><div style"height: 100%;"><el-table ref"sneTable" element-loading-text"加载中" element-loading-spinner"el-icon-loading"element-loading-background"rgba(45,47,79…

触摸按键控制LED灯

目录 1.理论 2.代码 2.1 touch_ctrl_led.v 2.2 tb_touch_ctrl_led 1.理论 以上的波形图的touch_flag是采用组合逻辑的方式产生的。 以上的touch_flag是采用时序逻辑产生的&#xff0c;时序逻辑会延迟一拍。 以上是上升沿和下降沿的组合逻辑和时序逻辑实现&#xff0c;逻辑或…

GraphicsMagick 的 OpenCL 开发记录(五)

<2022-03-09 Wed> 调用clCreateBuffer()产生异常问题&#xff08;三&#xff09; 我在这里找到了一些有用的信息&#xff1a;“crash in NEO::DrmAllocation::makeBOsResident or in checkAllocationsForOverlapping when using more than one opencl block in gnuradi…

教育的本质与教师发展:对能力大赛模板化现象的深度反思与批判——以快速技术迭代背景下的教学策略为审视视角

在我国当前的教育体系中&#xff0c;教师能力大赛等活动在一定程度上确实扮演了提升教师专业素养、推动教学改革的角色。它们通过竞争机制激发了教师自我提升的动力&#xff0c;并提供了一个展示教师教学才华的平台。然而&#xff0c;随着时间推移&#xff0c;此类活动却呈现出…

50道SQL练习题及答案与详细分析

数据表介绍 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId 课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname 教师姓名 --4.成绩…

几种常见的算法

一、冒泡排序法 冒泡排序法 原始数据&#xff1a;3 2 7 6 8 第1次循环&#xff1a;&#xff08;最大的跑到最右边&#xff09; 2 3 7 6 8&#xff08;3和2比较&#xff0c;2<3 所以2和3交换位置&#xff09; 2 3 7 6 8&#xff08;3和7比较&#xff0c;3<7 所以不需要交…