Description对于一个数列{ai},如果有iaj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个?Input第一行为两个整数n,k。Output写入一个整数,表示符合条件的数列个数,由于...
分类:
其他好文 时间:
2014-12-14 17:02:41
阅读次数:
220
前几天开始看树状数组了,然后开始找题来刷。 首先是 POJ 2299Ultra-QuickSort:http://poj.org/problem?id=2299 这题是指给你一个无序序列,只能交换相邻的两数使它有序,要你求出交换的次数。实质上就是求逆序对,网上有很多人说它的原理是冒泡排序,可...
分类:
编程语言 时间:
2014-12-13 23:22:22
阅读次数:
286
Inversion
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1898 Accepted Submission(s): 743
Problem Description
bobo has a sequ...
分类:
编程语言 时间:
2014-12-11 12:20:46
阅读次数:
221
题目1348:数组中的逆序对
时间限制:1 秒内存限制:32 兆特殊判题:否提交:2133解决:500
题目描述:
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。
输入:
每个测试案例包括两行:
第一行包含一个整数n,表示数组中的元素个数。其中1 <= n <= 10^5。
第二行包含n个整数,每个数组均为int类型。
...
分类:
编程语言 时间:
2014-12-10 18:13:47
阅读次数:
178
前段时间用归并排序写了这题,发现树状数组也能解这题,就去学习了一下
首先先来看一个序列 6 1 2 7 3 4 8 5,此序列的逆序数为5+3+1=9。冒泡法可以直接枚举出逆序数,但是时间复杂度太高O(n^2)。冒泡排序的原理是枚举每一个数组,然后找出这个数后面有多少个数是小于这个数的,小于它逆序数+1。仔细想一下,如果我们不用枚举这个数后面的所有数,而是直接得到小于这个数的个数,那么效率将...
分类:
编程语言 时间:
2014-12-09 23:08:39
阅读次数:
270
Frosh Week
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1919 Accepted Submission(s): 619
Problem Description
During Frosh Wee...
分类:
编程语言 时间:
2014-12-09 10:36:28
阅读次数:
259
题目大意:给出一个序列,求出这个序列的逆序对数量。定义一种操作,将一个数和他后面比他小的数字拿出来排序, 然后再放回去,之后输出逆序对数。
思路:思路题。手动模拟一下,会发现,逆序对变化的只是排序的那些点 。所以我们只要处理那些点就行了。先求一次逆序对,然后每次在拿出的数后面找到一个最小的数字,把它的权值改成INF,统计答案。
CODE:
#include
#inclu...
分类:
编程语言 时间:
2014-12-06 16:57:25
阅读次数:
159
咳咳,这个图必须要的....首先,当有一个数组a数量非常大的时候,我们可能改变某个a[i]的值,要求a[n]的和,全部加起来,无疑是要O(n)的时间复杂度。但是如果n非常大时,O(n)时间复杂度肯定要跪,所以,怎么办的,用神奇的树状数组。树状数组代码简单,但是非常强大!更令人兴奋的是,它的时间复杂度...
分类:
编程语言 时间:
2014-12-05 21:02:54
阅读次数:
160
题目大意:带修改、强制在线的区间逆序对
将之前3744TLE了的某个做法重写了一发 把其中一些预处理改成了树状数组 不得不说树状数组常数还是小啊
令g[i][j](i
equals[i][j]表示前i块之内j的数量 这个直接暴力即可
smaller[i][j]表示前i块之内小于等于j的数的数量 第一维暴力第二维树状数组
修改时都维护一遍 查询时 首先我们把区间分为三块
令A为左侧零碎部...
分类:
编程语言 时间:
2014-12-03 19:22:10
阅读次数:
230
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2431分析:f(i,j)表示前i个数字逆序对数目为j时候的方案数那么有f(i,j)=∑f(i-1,k) j-i+1<=k<=j看似是n*k*k的,但是注意对于每一个i,当j=j+1时候,结...
分类:
其他好文 时间:
2014-11-27 00:12:47
阅读次数:
203