每日一题冲刺大厂第十七天 逆序对

简介: 大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!

今日题目: 逆序对


题目描述


猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。


最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中 ai>aj 且 i


Update:数据已加强。


输入格式


第一行,一个数 n,表示序列中有 n个数。


第二行 n 个数,表示给定的序列。序列中每个数字不超过 10^9。


输出格式


输出序列中逆序对的数目。


题目分析


题目难度:⭐️⭐️


题目涉及算法:树状数组,排序。


ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力


题解报告:


1.思路


可以用树状数组,逆序对板子解决这个问题,如果不懂的话可以去学习一下逆序对或者树状数组。


2.代码


#include <bits/stdc++.h>
using namespace std;
int n,a[5000002],b[5000002];
long long num=0;
void merge(int l,int r)
{
  int mid = (l+r)/2;
  if(l == r)
  {
    return ;
  }
  else
  {
    merge(l,mid); 
    merge(mid+1,r);
  }
  int i = l;
  int j = mid + 1;
  int t = l;
  while(i<=mid&&j<=r)
  {
    if(a[i]>a[j]) 
    { 
      num += mid - i + 1;
      b[t++] = a[j];
      j++;
    }
    else
    {
      b[t++] = a[i];
      i++;
    }
  }
  while(i<=mid)
  {
    b[t++] = a[i];
    i++; 
  }
  while(j<=r)
  {
    b[t++]=a[j];
    j++;
  }
  for(int i=l;i<=r;i++)
  {
    a[i] = b[i];
  }
  return ;
}
int main()
{
  cin>>n;
  for(int i=1;i<=n;i++)
  {
    cin>>a[i];
  }
  merge(1, n);
  printf("%lld",num);
  return 0;
}


目录
相关文章
|
6月前
蓝桥备战--分糖果OJ2928 贪心 分类讨论
蓝桥备战--分糖果OJ2928 贪心 分类讨论
65 0
|
算法 Android开发 容器
LeetCode 周赛上分之旅 #35 两题坐牢,菜鸡现出原形
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
91 0
|
机器学习/深度学习 存储 测试技术
蓝桥杯冲刺-倒数第八天-省赛题
蓝桥杯冲刺-倒数第八天-省赛题
114 0
|
算法 程序员
【算法集训 | 暑期刷题营】8.2题---暴力递归之深搜
【算法集训 | 暑期刷题营】8.2题---暴力递归之深搜
【算法集训 | 暑期刷题营】8.2题---暴力递归之深搜
|
机器学习/深度学习 人工智能 BI
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
大家好 我是泡泡 倒数六天 蓝桥开赛!记得打印准考证!
119 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
|
算法
每日一题冲刺大厂提高组第八天 栗酱的数列
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题提高组是为了有余力的同学准备的,让大家练到各种各样的题目,一年以后,蜕变成为一个不一样的自己!
104 1
|
人工智能 机器人 定位技术
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
大家好我是泡泡,今天给大家带来船新的题解
128 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
|
机器学习/深度学习
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
大家好,我是泡泡,距离蓝桥杯还有五天,大家一定要坚持下去
123 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
|
机器人
【蓝桥杯省赛】冲刺练习题【动态规划】倒计时【08】天
【蓝桥杯省赛】冲刺练习题【动态规划】倒计时【08】天
86 0
|
算法
每日一题冲刺大厂第十八天 快速幂
大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!
79 0