解题思路:
如果原序列的逆序对数大于交换次数,那么最少的逆序对数量就是原序列逆序对-交换次数。
如果原序列的逆序对数小于等于交换次数,那么最少的逆序对数量为0,因为交换次数超过逆序对数,可以把这些逆序对全部消除。

代码如下:

#include <iostream>
using namespace std;const int N = 100010;
typedef long long LL;
LL cnt = 0;
LL a[N];
LL w[N];
int n, p;
void merge_sort(int l, int r) {if (l >= r)return ;int mid = (l + r) >> 1;merge_sort(l, mid);merge_sort(mid + 1, r);int k = 0, i = l, j = mid + 1;while (i <= mid && j <= r) {if (a[i] <= a[j])w[k++] = a[i++];else {cnt += mid - i + 1;w[k++] = a[j++];}}while (i <= mid)w[k++] = a[i++];while (j <= r)w[k++] = a[j++];for (int i = l, j = 0; i <= r; i++, j++)a[i] = w[j];
}int main() {while (cin >> n >> p) {cnt = 0;for (int i = 0; i < n; i++)cin >> a[i];merge_sort(0, n - 1);if (cnt <= p)cout << "0" << endl;elsecout << cnt - p << endl;}return 0;
}

hdu4911 Inversion-归并排序相关推荐

  1. HDU4911 Inversion 解题报告

    题意:求逆序对 解题思路:1)树状数组 + 离散化 解题代码: 1 // File Name: a.cpp 2 // Author: darkdream 3 // Created Time: 2014 ...

  2. ICPC程序设计题解书籍系列之九:罗勇军《算法竞赛入门到进阶》

    罗书<算法竞赛入门到进阶>题目一览 第1章 算法竞赛概述 HDU1000 HDU1089-HDU1096 A+B for Input-Output Practice (I)-(VIII)( ...

  3. TYUT-A专题题解(一)

    TYUT-A专题题解(一) 01A Ad Hoc UVA353 LA5247 Pesky Palindromes[回文] - 海岛Blog - CSDN博客 UVA947 Master Mind He ...

  4. 逆序数2 HDOJ 1394 Minimum Inversion Number

    题目传送门 1 /* 2 求逆序数的四种方法 3 */ 1 /* 2 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]. ...

  5. [HDU1394]Minimum Inversion Number

    题目:Minimum Inversion Number 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 分析: 1)先对序列求逆序对的数目,归并排序 ...

  6. 算法分析-分治 归并排序,递归插入排序,二分查找

    反正分治的套路就是 相同子问题,递归做,我之前有介绍express源码,其中的中间件使用就是用next()函数一直递归,想看的看我的express源码分析: 分治3步骤: 分解 处理 归并 下面给出归 ...

  7. Count Inversion逆序对数问题

    逆序对数问题Count Inversion Problem Description Recall the problem of finding the number of inversions. As ...

  8. 分治算法的设计思想(二分检索、二分归并排序)

    分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...

  9. LightHouse/归并排序

    灯塔(LightHouse) 题目见https://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=1144 最近复习DSA,便在看邓老师的mooc,顺便做做配套 ...

  10. 归并排序(代码注释超详细)

    归并排序: (复制粘贴百度百科没什么意思),简单来说,就是对数组进行分组,然后分组进行排序,排序完最后再整合起来排序! 我看了很多博客,都是写的8个数据呀什么的(2^4,分组方便),我就想着,要是10 ...

最新文章

  1. Oracle11g新特性导致空表不能导出问题
  2. jQuery1.6以上attr改用prop
  3. macbookpro升级后打不开eclipse_维修分享——面容坏升级iOS13系统后 导致前后摄像头都打不开...
  4. 网络安全 / crt、pem、pfx、cer、key 作用及区别
  5. C++ 是一门难学易用的语言!
  6. leetcode 300. 最长上升子序列
  7. 案例:演示<jsp:include>动作元素
  8. 小明利用计算机软件绘制函数,2019年人大附中初二下期末模拟数学试题
  9. OpenGL学习笔记一
  10. 最全的LBS手机定位技术说明
  11. Python3-网页爬取-批量爬取贴吧页面数据
  12. C语言:由键盘任意输入1个整形数据(小于10亿,位数不限),将其倒置,如:输入12345,则输出54321。
  13. 恐怖的广告推送。其实,我们每天都在“裸奔”!
  14. 心物各东西:基因,文化和心灵
  15. 指派问题——匈牙利法
  16. 分享一下微信域名防封方案
  17. 动态规划---01背包问题详解
  18. 多元统计分析——数据降维——因子分析(FA)
  19. python数据库选择
  20. 转录组表达量计RPKM、FPKM、TPM说明

热门文章

  1. Android studio之提示Failed to resolve: com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46
  2. C和指针之字符串之strncpy、strncat、strncmp
  3. Android之Base64
  4. amap vueamap 与_在vue中使用高德地图vue-amap
  5. 使其正序排序 打印一串数字_JavaScript计数排序算法
  6. php支持cs吗,关于composer、phpmd和phpcs于windows中的安装与使用方法
  7. 当代成年人的生活状态......
  8. 别薅了别薅了!!!再薅就真的被薅秃了!!
  9. 如何判断一个人是不是值得深入交流?
  10. 13个圆可以画什么?数学与艺术完美邂逅!原来数学也可以这么美