算贡献 算贡献通常会用到如下结论 $E(X+Y)=E(X)+E(Y)$ 但是$E(XY)$不一定等于$E(X)E(Y)$,等号成立的条件是,$X,Y$相互独立。 栗子1:nowcoder161E 排序 一道耗了大半管蓝做出来的题 做法 :求逆序对期望,我们可以转化成求 组成的pair对答案的贡献。 ...
分类:
其他好文 时间:
2018-09-01 12:08:22
阅读次数:
166
求逆序对是枚举一个数,统计前面有多少数小于它 这个用乘法原理,统计左右小于或大于它的 要用树状数组,但数太大数组开不下,要离散化 A[0]存储的是是0的数有多少个 ...
分类:
其他好文 时间:
2018-08-25 18:53:15
阅读次数:
140
先介绍一下离散化 桶排大家应该知道,就是开一个数组(下标为数值,记录了该数值的出现次数)然后遍历过去如果出现次数不为零,那就输出这些数字,理论时间复杂度可以达到O(N)但是由于内存限制,不能开很大的数组。 然而 如果某个数列中的数字不要求大小确定,只要求这些数字有相对的大小就够了的话, 离散化 就有 ...
分类:
其他好文 时间:
2018-08-20 21:53:59
阅读次数:
621
转圈游戏 "传送门" Solution 快速幂 Code 火柴排队 "传送门" Solution 建立映射关系,求逆序对个数 Code cpp //By Menteur_Hxy include include include include include define F(i,a,b) for(r ...
分类:
其他好文 时间:
2018-08-19 21:57:16
阅读次数:
167
1、什么是逆序数? 2、用树状数组求逆序数的总数 2.1该背景下树状数组的含义 2.2如何使用树状数组求逆序数总数 2.3 C++实现代码 1、什么是逆序数? 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序数的总数就是这个排列的逆序数 ...
分类:
编程语言 时间:
2018-08-19 11:55:50
阅读次数:
140
[TOC] 1.概念 将一个数组排序,可以递归的将它们分成两半分别排序,然后将结果归并起来。体现了分治思想。算法时间复杂度:O(nlgn) 2.自顶向下的归并排序算法(递归实现) 上图所示为归并数组a[0...15]的调用轨迹图。 2.1初实现 应用:求逆序对 归并排序中的__merge()函数,是 ...
分类:
编程语言 时间:
2018-08-02 19:22:55
阅读次数:
188
https://vjudge.net/problem/POJ-2299 题意 求对于给定的无序数组,求出经过最少多少次相邻元素的交换之后,可以使数组从小到大有序。 分析 很明显是求逆序对的数目,那就要想到归并排序了。在归并过程中计算逆序对。 ...
分类:
编程语言 时间:
2018-06-30 12:42:04
阅读次数:
140
【题目描述】 现给定1,2,…,n的一个排列,求它的逆序数。 【输入格式】 第一行是一个整数n,表示该排列有n个数(n <= 100000)。第二行是n个不同的正整数,之间以空格隔开,表示该排列。 【输出格式】 输出该排列的逆序数。 【分析】 (1)将区间[1..n]进行二分,先求出区间[1,mid ...
分类:
编程语言 时间:
2018-05-31 00:34:05
阅读次数:
209
Another Version of Inversion 题意:只有2种走路方式,往右或者往下,求先走到一个大的数,在走到小的数的这种方式有多少。也就是说求出关于这个2维矩阵的逆序数。 题解:二维数组+逆序数就完事了。 代码: 1 #include<bits/stdc++.h> 2 using na ...
分类:
编程语言 时间:
2018-05-30 00:19:25
阅读次数:
223
题意:给你一些字符串,字符串的权值是逆序对个数,对这个权值排序字符串 对每个字符串归并排序求逆序对即可(我归并排序写跪了就很捞) ...
分类:
其他好文 时间:
2018-05-02 20:55:52
阅读次数:
112