1311:【例2.5】求逆序对

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 26125     通过数: 5883

【题目描述】

给定一个序列a1,a2,…,an,如果存在i<j 并且ai>aj,那么我们称之为逆序对,求逆序对的数目。

【输入】

第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中的第i个数。

【输出】

所有逆序对总数。

【输入样例】

4
3
2
3
2

【输出样例】

3

【提示】

N≤10^5,Ai≤10^5。

#include <stdio.h>
#define N 100010
int a[N],r[N];
long long ans;
void msort(int s,int t)
{
    int mid,i,j,k;
    if(s==t)         //如果只有一个数字则返回,无须排序 
        return;
    mid=(s+t)/2;
    msort(s,mid);    //分解左序列 
    msort(mid+1,t);  //分解右序列
    i=s;             //接下来合并 
    j=mid+1;
    k=s;
    while(i<=mid && j<=t)
    {
        if(a[i]<=a[j])
        {
            r[k]=a[i];
            k++;
            i++;
        }
        else
        {
            r[k]=a[j];
            k++;
            j++;
            ans+=mid-i+1;    //统计产生逆序对的数量 
        }
    }
    while(i<=mid)      //复制左边子序列剩余 
    {
        r[k]=a[i];
        k++;
        i++;
    }
    while(j<=t)       //复制右边子序列剩余 
    {
        r[k]=a[j];
        k++;
        j++;
    }
    for(i=s;i<=t;i++)
        a[i]=r[i];
}
int main()
{
    int i,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    msort(1,n);
    printf("%lld\n",ans);
    return 0;
}

http://ybt.ssoier.cn:8088/problem_show.php?pid=1311

信息奥赛一本通(1311:【例2.5】求逆序对)相关推荐

  1. 信息学奥赛一本通 1311:【例2.5】求逆序对 | 1237:求排列的逆序数 | OpenJudge NOI 2.4 7622:求排列的逆序数 | 洛谷 P1908 逆序对

    [题目链接] ybt 1311:[例2.5]求逆序对 ybt 1237:求排列的逆序数 OpenJudge NOI 2.4 7622:求排列的逆序数 洛谷 P1908 逆序对 ybt 1311,123 ...

  2. 信息学奥赛一本通:1311:【例2.5】求逆序对

    1311:[例2.5]求逆序对 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 43413     通过数: 10264 [题目描述] 给定一个序列a1,a2,-, ...

  3. 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解

    废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms         内存限制: 524288 KB 提交数: 130     通过数: 68 ...

  4. 信息奥赛一本通 三角形最佳路径问题 (1288) 题解

    信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...

  5. 信息奥赛一本通的递推练习

    信息奥赛一本通的递推练习 递推与动态规划 1313:位数问题 1314:过河卒 1194:移动路线 1196:踩方格 递推与动态规划 递推解决的问题中满足最优化原理的也是属于动态规划范畴 1313:位 ...

  6. 1311:【例2.5】求逆序对

    1311:[例2.5]求逆序对 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 32812     通过数: 7495 [题目描述] 给定一个序列a1,a2,-,a ...

  7. 求逆序对(信息学奥赛一本通-T1311)

    [题目描述] 给定一个序列a1,a2,-,an,如果存在i<j并且ai>aj,那么我们称之为逆序对,求逆序对的数目. [输入] 第一行为n,表示序列长度,接下来的n行,第i+1行表示序列中 ...

  8. 信息竞赛进阶指南--归并排序求逆序对

    // 归并排序求逆序对 void merge(int l, int mid, int r) {// 合并a[l~mid]与a[mid+1~r]// a是待排序数组, b是临时数组, cnt是逆序对个数 ...

  9. Tido 习题-二叉树-树状数组求逆序对

    这里给大家提供一个全新的求逆序对的方法 是通过树状数组来实现的 题目描述   样例输入 Copy 5 2 3 1 5 4 样例输出 Copy 3 提示       #include<iostre ...

最新文章

  1. windows 导出 oracle,windows 环境下oracle导入导出
  2. SignalR学习笔记(三)Self-Host
  3. 数字信号处理的fpga实现_FPGA数字信号处理:通信类I/Q信号及产生
  4. 深入理解 Objective-C:方法缓存
  5. sqoop 使用心得(sqoop增量倒入)
  6. Thinkphp3.2整合微信支付
  7. python画图包-Python 绘图包 Matplotlib Pyplot 教程
  8. 《设计模式详解》结构型模式 - 适配器模式
  9. ubuntu编译运行xv6
  10. [比赛]2015/12/25BNU新生赛
  11. Python3入门机器学习经典算法与应用 第3章 Numpy中的比较和FancyIndexing
  12. Jmeter编码格式
  13. 机器学习之监督学习-分类模型K近邻(KNN)算法实现
  14. Caught FileNotFoundError in DataLoader worker process 0.
  15. 可以嵌入ppt的课堂点名器_异地授课+大屏直播,打造沉浸式线下多地互动智慧课堂...
  16. 1816. 截断句子【我亦无他唯手熟尔】
  17. 测试开发 | 接口测试之HTTP 协议讲解
  18. 高性能 MySQL实战
  19. 安全工程转计算机专业,2019安全工程专业就业前景和就业方向分析
  20. python 列表嵌套字典 添加修改删除_python 列表、字典、元组等增删改查

热门文章

  1. 中国程序员生存现状:颜值是择偶第一标准!
  2. 携程将推“3+2”工作模式:每周到岗3天,在家2天,你羡慕吗?
  3. 两次被裁之后,我终于解决了数据库缓存一致性问题
  4. 线程间到底共享了哪些进程资源?
  5. 避坑 | 早跟你说了不要写 hardcode!
  6. 受邀参加了一场只有副总裁、CTO参加的技术会议!
  7. 大神 20 年的专业数据分析心法全都在这里了
  8. Jeewx企业号系统入门配置指南
  9. SpringBoot2 整合FreeMarker模板,完成页面静态化处理
  10. 岁月划过生命线(从0到阿里)