SGU 180 - Inversions(逆序数)

countinversions:快速的数字反转计数器 计数倒置 快速的数字反转计数器 立即下载
180. Inversions
time limit per test: 0.25 sec.
memory limit per test: 4096 KB
input: standard
output: standard

There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<=i<j<=N and A[i]>A[j].

Input
The first line of the input contains the number N. The second line contains N numbers A1...AN.

Output
Write amount of such pairs.

Sample test(s)

Input
 
5 
2 3 1 5 4
Output
 
3


逆序数对,树状数组+离散化

离散化方法:http://blog.youkuaiyun.com/gokou_ruri/article/details/7723378

先离散化使数据密集,然后对每个数进行处理,一个一个插入树状数组。比如插入一个数a[i],就更新一遍a[i]置的值,也就是+1,表示出现了一个数字a[i]。Query(a[i])是当前小于等于a[i]的所有数的出现次数,也就是之前插入的数中有多少小于等于a[i],那么 i-Query(a[i]) 就是当前大于a[i]的数的个数,是满足答案的解,加到sum中。

注意sum要定义成long long


#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

const int maxn=70000;
int tree[maxn],n,a[maxn],b[maxn];
int Lowbit(int i)
{
    return i&(-i);
}

void Update(int i,int x)
{
    while(i<=n)
    {
        tree[i]+=x;
        i+=Lowbit(i);
    }
}

int Query(int i)
{
    int sum=0;
    while(i>0)
    {
        sum+=tree[i];
        i-=Lowbit(i);
    }
    return sum;
}

int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        b[i]=a[i];
    }
    sort(b,b+n);
    int size=unique(b,b+n)-b;
    long long sum=0;
    for(int i=0;i<n;i++)
    {
        int pos=upper_bound(b,b+size,a[i])-b;
        Update(pos,1);
        sum+=i+1-Query(pos);
    }
    printf("%I64d\n",sum);
    return 0;
}


手把手教你用STM32驱动SPL06-001气压传感器(附完整代码与避坑指南) 本文详细介绍了如何使用STM32驱动SPL06-001气压传感器,包括硬件连接、寄存器配置、驱动层实现和数据补偿算法。通过完整的代码示例和避坑指南,帮助开发者快速掌握SPL06传感器的应用技巧,提升嵌入式系统开发效率。 阅读详情

相关推荐

Geneformer实战:如何用Hugging Face Transformers快速搭建单细胞转录组分类模型

本文详细介绍了如何使用Geneformer和Hugging Face Transformers快速搭建单细胞转录组分类模型。通过环境准备、数据预处理、模型加载与配置、训练Pipeline构建等步骤,帮助读者掌握基于Transformer架构的单细胞数据分析技术,提升分类准确率和效率。

rl6adventurer的博客 605

sgu 180(树状数组)

点击打开链接 第一次在sgu上做题 题意: 给你n个数,求有多少组(i,j)  ia[j]; 树状数组+离散化。。。 #include"stdio.h" #include"string.h" #include"algorithm" using namespace std; #define N 65555 typedef __int64 LL; LL C[N]; s

hello_fei 752

数据结构实验1.2—高精度计算PI值(西工大)

这是数据结构第二题的题目,是让我们根据用户的需求来计算派的值 这是题目的详细描述,刚看到这道题的时候,我是真的头大,完全没有思路,于是查找了一些大佬的笔记后才开始编写 这是我在写这些代码是所运用到的数学反三角函数幂次展开式的知识。 下面是正确的代码以及我的一些见解,和需要注意的一些地方。希望能对你有所帮助。如有更加精简的算法,请在评论区留下你的算法!!!谢谢!!! #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdl

abcdef0623的博客 5831

SGU180(树状数组,逆序对,离散)

Inversions time limit per test: 0.25 sec.memory limit per test: 4096 KB input: standardoutput: standard There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need...

weixin_30770495的博客 164

FPGA 核脉冲梯形成型 Verilog 实现:从 MATLAB 到 50MHz 采样率部署

本文详细解析了FPGA实现核脉冲梯形成型的完整流程,从MATLAB仿真到50MHz采样率的Verilog硬件部署。重点探讨了梯形成型算法对负指数信号的优化处理,包括定点数量化、流水线架构设计及资源优化技巧,为核辐射探测与高能物理实验提供高效解决方案。

weixin_30920513的博客 389

Oracle 常用语法汇总

CREATE TABLE 表名(COMMENT ON COLUMN 注释;-- 创建一个学生表STUDENT_ID NUMBER(10) PRIMARY KEY, -- 学生ID,主键FIRST_NAME VARCHAR2(50) NOT NULL, -- 学生名字,不允许为空LAST_NAME VARCHAR2(50) NOT NULL, -- 学生姓氏,不允许为空EMAIL VARCHAR2(100) UNIQUE, -- 学生电子邮箱,唯一。

拽着尾巴的鱼儿的博客 2157

2497 Problem C Count Inversions

问题 C: Count Inversions 时间限制: 1 Sec  内存限制: 128 MB 提交: 19  解决: 5   题目描述 给一个数组,算inverted pair的数目 输入 有多组测试样例。每组输入数据占一行,每一行是一个数组,数组之间的元素用空格分开 输出 每组输出结果占一行。对应于每组输入数据的inversions 样例输入 1 2 3 2 1 3 3 ...

漫浸天空的雨色的备忘录~ 653

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 334

树状数组专题(三)-Count Inversions

树状数组专题(三)-Count Inversions 待更新…

肖睿的博客 392

告别环境配置噩梦:用Docker Desktop + WSL2在Windows上5分钟搞定vLLM运行环境

本文详细介绍了如何在Windows系统上使用Docker Desktop和WSL2快速搭建vLLM开发环境,5分钟内完成配置。通过容器化技术解决传统环境配置中的依赖冲突、环境污染等问题,提供一键复用的高效方案,特别适合AI开发者快速部署和测试vLLM框架。

weixin_28728495的博客 502

YOLO26 数据标注工具:LabelImg、Label Studio实战指南:主流标注工具的安装配置与使用技巧,高效完成目标检测数据标注

本文介绍了目标检测中数据标注的核心地位与常用工具。数据标注质量直接影响模型性能,需要关注准确性、一致性等维度。文章详细讲解了边界框、类别标签等基本概念,并对比了LabelImg、Label Studio等主流标注工具的特点。重点介绍了LabelImg的轻量级、易用性等优势,以及Label Studio的协作功能,为不同规模项目提供标注工具选择建议。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1176

SGU180:Inversions(树状数组)

There are N integers (1A[j]. Input The first line of the input contains the number N. The second line contains N numbers A1...AN. Output Write amount of such pairs. Sample test(s)

ACM!荣耀之路! 1328

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SGU 180 Inversions 逆序数

-------------- int n; int a[maxn]; int b[maxn]; struct BIT{ int n; int tree[maxn]; void init(int n){ this->n=n; memset(tree,0,sizeof(tree)); } int lowbit(int x){

Azarath Metrion Zinthos 662

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

逆序数poj 2299 Ultra-QuickSort sgu 180 Inversions

poj 2299

晔嫁的专栏 734

SGU 180. Inversions(归并排序求逆序数)

题意:给出n个数,问有多少对逆序数。所谓逆序数就是对于一对i,j,满足1a[j]。 思路:利用归并排序的思想(其实就是分治啦),把数组分为两个区间,则逆序数的对数就等于左区间内的逆序数的个数+右区间内的逆序数的个数+i在左区间内j在右区间内的逆序数的个数。以前不知道写没写过求逆序数的题,但肯定不是用归并排序的思想写的,感觉这么写很简单的样子。这题本来以为不会超int的,结果wa了以后一算,超了1

绝望的乐园 800

B - Inversions SGU - 180(归并求逆序数对)

题意:就是求一个数组里逆序数对有多少组,看见很多大佬用树状数组求的并且需要离散化,但是使用了归并求逆序数对居然过了。就是在归并排序的过程中求逆序数对。 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; long long int count = 0; int a[100010],b[100010]; void Merge(int a[], ...

Fusheng_Yizhao的博客 450

SGU180 Inversions(树状数组求逆序数)

题目: 思路:先离散化数据然后树状数组搞一下求逆序数。 离散化的方法:https://blog.youkuaiyun.com/gokou_ruri/article/details/7723378 自己对用树状数组求逆序数的理解:输入数据并利用树状数组求出前边比它小和等于它的数据有几个,用输入数据的总的个数减去比它小的数就是比它大的数res,将所有的res加起来就是要求的序列的逆序数。 如图: ...

weixin_30273501的博客 121

树状数组--SGU180 Inversions(树状数组求逆序数)

题目: 思路:先离散化数据然后树状数组搞一下求逆序数。 离散化的方法:https://blog.youkuaiyun.com/gokou_ruri/article/details/7723378 自己对用树状数组求逆序数的理解:输入数据并利用树状数组求出前边比它小和等于它的数据有几个,用输入数据的总的个数减去比它小的数就是比它大的数res,将所有的res加起来就是要求的序列的逆序数。 如图: ...

sykai1的博客 250

【SGU】180. Inversions(归并排序求逆序数)

以前一般用树状数组和线段树做这种题 这次换个思路试试,归并排序! #include #include #include using namespace std; typedef long long LL; const int maxn = 111111; int n; int array[maxn]; int tmp[maxn]; LL ans; void my_sort(int l,int

花月阁 885

树状数组(4)

1、Sgu 180 Inversions  http://acm.sgu.ru/problem.php?contest=0&problem=180 代码忘了放哪了,离散化,求逆序数。。。。习惯很重要啊。 2、POJ 2155 Matrix  http://acm.pku.edu.cn/JudgeOnline/problem?id=2155 二维的成段更新,单点查询。理解了一维,二维画图也

lj1043041006的专栏 558

SGU 180 - Inversions ( 归并排序 / 树状数组 )

题意 给出一个数组 求这个数组的逆序数 思路 分治(nlogn):将问题划分为规模更小的子问题,递归地解决划分后的子问题,再将结果合并。 考虑将数组a划分为两半得到b和c,于是a中的逆序对必然有三种情况: ①i,j都属于数列B的逆序对(i,j); ②i,j都属于数列C的逆序对(i,j); ②i属于B而j属于C的逆序对(i,...

weixin_30457551的博客 164

sgu180 Inversions(树状数组+离散化)

传送门http://acm.sgu.ru/problem.php?contest=0&problem=180 经典求逆序数题目。 收获几点: 1.因为qsort关系在#11T了。改成sort就不会了。 sort用起来更方便,以后就用sort了 2.树状数组,不能从0开始,不然在lowbit()这里会陷入死循环。 3.sgu里的64位数剧 是用I64d输入输出的。这里错了一次

uiiの技术随笔 873

SGU[180] Inversions

Description 描述 There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<=i<j<=N and A[i]>A[j]. 给定N (1 <= N ...

asd5215208的博客 142

SGU 180 Inversions

题意就是求 逆序数。 依然线段树水过。 →_→ 模版题。这下严格注意各种坑。1A。 #include #include #include #include #include #include #include #include #include #include #include #include #include #define INF 0x7fffffff #define

自己选择的路,跪着也要走完。 652
上一篇: POJ 1502 - MPI Maelstrom(单源最短路)
下一篇: SGU 271 - Book Pile
coco430
博客等级 码龄14年 9粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值