URL https://dmoj.ca/problem/cco20p2 题意 给一个长度为 \(N\) 的序列 \(D_i\),求一个排列 \(P_1,P_2,\ldots,P_N\) 满足 \(P_i \le D_i\),并最小化逆序对数 解法 显然应该倒着填,每次选最大的能填的数字? 实现 ht ...
分类:
其他好文 时间:
2020-05-28 19:50:44
阅读次数:
56
参考博客:https://www.cnblogs.com/chengxiao/p/6194356.html sort不稳定。归并排序是较为稳定的一种排序算法 复杂度:nlogn 本排序的一个应用:HDU 4911 求逆序对数量:http://acm.hdu.edu.cn/showproblem.ph ...
分类:
编程语言 时间:
2020-05-24 19:19:03
阅读次数:
56
"Enemy is weak" 求序列 $a\{n\}$ 中的三元逆序对数量。 数据范围:$3\le n\le 1e6$。 这题真是一道又好又水的题,可是我看别人的题解做法真是玄学难懂,于是蒟蒻要写一篇简单易懂的。 考虑到 二元逆序对 的做法: 离散化后动态维护一个权值树状数组。 其中对于每个当做逆 ...
分类:
其他好文 时间:
2020-05-01 12:57:30
阅读次数:
71
面试题51. 数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 归并排序简介: 归并排序(MERGE-SORT ...
分类:
编程语言 时间:
2020-04-24 21:28:34
阅读次数:
78
"Link" 首先发现一次操作相当于交换两个距离为$1$的数。 那么如果奇数位上有偶数或者偶数位上有奇数,一定就是不合法的。 注意到对原排列进行一次操作,会让逆序对数减少$3$。 我们把奇数位和偶数位分成两个排列,那么对原排列进行一次操作,会让这两个排列中的某个排列的逆序对数减少$1$。 因此第二个 ...
分类:
其他好文 时间:
2020-03-10 19:52:18
阅读次数:
52
P1966 火柴排队 求逆序对+数学 题意描述 有 a,b 两个数列,它们的距离为∑(ai bi)2。 每列中相邻的两个数均可进行交换,求至少交换多少次,可以使 a,b 的距离最短。 看不懂你 "这题" 就别做了。 算法分析 首先你应该知道:顺序和≥乱序和≥逆序和(好像没有什么关系) 然后你应该知道 ...
分类:
其他好文 时间:
2020-03-07 21:08:27
阅读次数:
75
1) n*n,n为奇数 除去空格展成一行后,两个的逆序对个数的奇偶性相同2) n*n,n为偶数 除去空格展成一行后,两个局面逆序对数之差和两个局面空格所在行数之差的奇偶性相同3) n*m 根据列的奇偶性同上 ...
分类:
其他好文 时间:
2020-03-07 09:33:24
阅读次数:
79
题目: 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。 输入格式 第一行包含整数n,表示数列的长度。 第二行包含 n 个整数,表示整个数列。 输出格式 ...
分类:
编程语言 时间:
2020-02-28 20:51:45
阅读次数:
65
分析:我们可以逆向考虑(因为正向的话由于第一位的逆序对数一定是0,算不出什么),对于第i个数,它使逆序对的数量增加了temp=num[i]-num[i-1],即区间【1,i-1】内比这个数大的有temp个,即它在i个数中从小到大排在(i-temp)个,那么找到这个数即可。 对于答案序列来讲,他是一个 ...
分类:
编程语言 时间:
2020-02-17 23:51:27
阅读次数:
82