对1~n组成的序列进行冒泡排序,一共进行了k趟,问有几个符合题意的序列。
注意:这里指每一趟是指交换当前相邻的所有逆序对,例如:2 1 4 3进行一趟交换就是1 2 3 4
如果我们细心观察,就会发现,需要进行的趟数等于序列中对于某个最多逆序对数的数。例如:在序列 3 2 1 4中,3的逆序对为0,2的逆序对为1,1的逆序对为2...
分类:
其他好文 时间:
2015-08-17 23:47:43
阅读次数:
172
归并排序之逆序对题目传送:#1141 : 二分·归并排序之逆序对好吧,第一次敲归并,略挫,不过爆intWA了一发AC代码:#include
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-08-17 01:03:32
阅读次数:
139
峰神OrzOrzOrz!今天是暑期集训day5,今天莫名其妙就学会了一些东西。做的题是noip2013的四道题。1.终于学会快速幂及快速幂取模这玩意儿了,位运算一刹那就豁然开朗了。。(难道是自己之前太傻逼了?2.还有树状数组,感觉好神啊,鼓捣了好长时间,也不知道怎么用它求逆序对个数3.线段树也理解了...
分类:
其他好文 时间:
2015-08-14 22:42:04
阅读次数:
155
题意:求一个数列的冒泡排序的交换次数;参考:http://blog.csdn.net/suwei19870312/article/details/5293694思路: 一个数列的冒泡排序交换次数即为每个数对应的逆序对数之和,朴素的思想是两个for,O(N^2)复杂度; 数字范围是0-9999...
分类:
编程语言 时间:
2015-08-14 13:21:55
阅读次数:
123
#include using namespace std;const int LENGTH = 100;int temp[LENGTH];int count = 0;void Merge(int array[], int low, int mid, int high);void MergeSort(...
分类:
编程语言 时间:
2015-08-13 22:06:40
阅读次数:
179
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。思路:归并排序的合并过程。主要是考虑合并两个有序序列时,计算逆序对数。对于两个升序序列,设置两个下标:两个有序序列的末尾。每次比较两个末尾值,如果前末尾大于后末尾值,则有...
分类:
编程语言 时间:
2015-08-13 17:28:49
阅读次数:
194
题目链接:二分·归并排序之逆序对题目大意:N个整数,第i个数表示等级第i低的船的火力值a[i],求A船比B船等级高,但是A船火力低于B船,相当于就是求逆序数吧解题思路:把序列分成元素个数尽量相等的两半把两半元素分别排序把两个有序表合并成一个二分归并排序做法:/********************...
分类:
编程语言 时间:
2015-08-12 01:15:24
阅读次数:
134
逆序对的经典题目。考试的时候不知道怎么写丑了,全WA了,正好带我复习了一遍逆序对。
将火柴序列从小到大分配一个等级,当a的等级与对应的b的等级相同时,答案最小,至于为什么是这样,我就不证明了。这里的等级,实际上就是离散化。
把a的等级从小到大排序之后,再把b对应a的等级排序,求出现在b的等级序列中的逆序对,就是我们要求的交换次数,因为每交换一次,只能使一组逆序对变成有序的。
注意暴搜求逆序对...
分类:
其他好文 时间:
2015-08-11 23:37:53
阅读次数:
124
HDU - 2838
Cow Sorting
Time Limit: 1000MS
Memory Limit: 32768KB
64bit IO Format: %I64d & %I64u
Submit Status
Description
Sherlock's N (1 ≤ N ≤ 100,000) cows are li...
分类:
编程语言 时间:
2015-08-10 14:57:55
阅读次数:
197