洛谷P1908 逆序对
P1908 逆序对
- 2.2K通过
 - 4.4K提交
 
- 题目提供者该用户不存在
 - 标签云端
 - 难度普及/提高-
 - 时空限制1s / 128MB
 
提交 讨论 题解
最新讨论更多讨论
- 归并排序党注意了!数组要开…
 - dalao题解看不懂。。。。
 - 数据太水!!!!!!!!!…
 - 为什么不对?
 - 数据范围有误!!!
 - 暴力20!
 
题目描述
猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。
输入输出格式
输入格式:
第一行,一个数n,表示序列中有n个数。
第二行n个数,表示给定的序列。
输出格式:
给定序列中逆序对的数目。
输入输出样例
6
5 4 2 6 3 1
11
说明
对于50%的数据,n≤2500
对于100%的数据,n≤40000。
分析:树状数组的模板题,所给的正整数大小可能会比较大,所以先离散,给排序后的数分配一个序号,然后每次添加一个数,然后进行求和,所得到的是这个数前比它小的数的个数,那么可以很容易得到比它大的数的个数,累加答案即可.
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int n,a[],re[]; struct node
{
int v, id;
}t[]; bool cmp(node a, node b)
{
return a.v < b.v;
} void add(int x, int d)
{
while (x <= n)
{
a[x] += d;
x += x & (-x);
}
} int sum(int x)
{
int cnt = ;
while (x)
{
cnt += a[x];
x -= x&(-x);
}
return cnt;
} int main()
{ scanf("%d", &n);
for (int i = ; i <= n; i++)
{
scanf("%d", &t[i].v);
t[i].id = i;
}
sort(t + , t + n + , cmp);
for (int i = ; i <= n; i++)
re[t[i].id] = i;
long long ans = ;
for (int i = ; i <= n; i++)
{
add(re[i], );
ans += i - sum(re[i]);
}
printf("%lld", ans); return ;
}
洛谷P1908 逆序对的更多相关文章
- 洛谷P1908 逆序对【递归】
		
题目:https://www.luogu.org/problemnew/show/P1908 题意:给定一个数组,求逆序对个数. 思路: 是一个很经典的题目了.通过归并排序可以求逆序对个数. 现在有一 ...
 - 洛谷  P1908 逆序对 Label:归并排序||树状数组 不懂
		
题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定 ...
 - 洛谷 P1908 逆序对
		
\[传送门qwq\] 题目描述 猫猫\(TOM\)和小老鼠\(JERRY\)最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计. 最近,\(TOM\)老猫查阅 ...
 - 洛谷P1908 逆序对 [权值线段树]
		
题目传送门 逆序对 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的 ...
 - 洛谷—— P1908 逆序对
		
https://www.luogu.org/problem/show?pid=1908 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏, ...
 - 洛谷 P1908 逆序对(归并排序解法)
		
树状数组解法:https://www.cnblogs.com/lipeiyi520/p/10846927.html 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不 ...
 - 洛谷 P1908 逆序对(树状数组解法)
		
归并排序解法:https://www.cnblogs.com/lipeiyi520/p/10356882.html 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不 ...
 - 洛谷P1908 逆序对(归并排序)
		
题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计.最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定 ...
 - 洛谷 P1908 逆序对 题解
		
每日一题 day43 打卡 Analysis 因为数据规模,所以我们需要对其进行离散化,新创一个数组a里面来放在我们的初始序列中在这个位置上的数是第几大的这里还要用一个小技巧排序,关于离散化的技巧我们 ...
 
随机推荐
- SQL数据库从高版本导入低版本
			
1. 打开高版本数据库右键–>任务–>生成脚本–>高级–>选择脚本兼容的版本(也就是低版本)–>拉倒最下面选择架构和数据 2. 在低版本里面,先新建一个数据库,名称要和脚 ...
 - Atlas 配置高可用
			
keepalived安装 #下载keepalived ./configure --prefix=/usr/local Make && make install Atlas主安装keep ...
 - 十四、MySQL UPDATE 查询
			
MySQL UPDATE 查询 如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 S ...
 - k8s的secret基本概念及案例
			
secret相对于configMap,功能上是相似的但是secret是以其他编码方式去记录配置信息的,但是也可以被解读,只不过有技术门槛,不是那么容易就被解读.使用base64可以解码:echo ** ...
 - Java流(Stream)、文件(File)和IO
			
Java.io包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io包中的流支持很多格式,比如:基本类型.对象.本地化字符集等等. 一个流可以理解为一个数据的序列 ...
 - 模块numpy的用法
			
https://blog.csdn.net/qq351469076/article/details/78817378 机器学习三剑客之Numpy: https://www.jianshu.com/p/ ...
 - HDU - 6514 Monitor(二维差分)
			
题意 给定一个\(n×m\)的矩阵.(\(n×m <= 1e7\)). \(p\)次操作,每次可以在这个矩阵中覆盖一个矩形. \(q\)次询问,每次问一个矩形区域中,是否所有的点都被覆盖. 解析 ...
 - Apache虚拟主机测试
			
一.虚拟机主机简介 部署多个站点,每个站点,希望用不同的域名和站点目录,或者是不同的端口,或不同的ip,就需要虚拟主机功能.简单的说一个http服务要配置多个站点,就需要虚拟主机.(一句话一个http ...
 - Storm: 性能优化 (转载)
			
Storm 性能优化 原文地址:http://www.jianshu.com/p/f645eb7944b0 目录 场景假设 调优步骤和方法 Storm 的部分特性 Storm 并行度 Storm 消 ...
 - mysql 分组查询前n条数据
			
今天去面试,碰到一道面试题: 有一个学生成绩表,表中有 表id.学生名.学科.分数.学生id .查询每科学习最好的两名学生的信息: 建表sql: CREATE TABLE `stuscore` ( ` ...