这题是2Y,第一次WA贡献给了没有long long 的答案QAQ题意不难理解,解题方法不难。先用归并排序求出原串中逆序对的个数然后拿来减去k即可,如果答案小于0,则取0学习了归并排序求逆序对的方法,可以拿来当模板 TVT贴代码了: 1 #include 2 #include 3 #includ.....
分类:
其他好文 时间:
2014-08-05 21:49:30
阅读次数:
250
思路:类似归并排序算法,在合并已经有序的相邻子数组的时候,计算前面数组相对于后面数组的逆序对数,整个递归过程可以算出所有逆序对#include void merge(int A[], int front, int middle, int end, int &count){ if (front ...
分类:
其他好文 时间:
2014-08-04 21:26:48
阅读次数:
262
正如书上所说,本题需要用IDA*算法求解启发函数是3d+h>3maxd(d为当前操作步骤数,h为当前逆序对数,maxd为当前枚举的最大步骤数)可见迭代递归的核心思想是枚举ans去dfs是否可行,相反常规搜索是dfs去需找ans。一开始卡在状态图的转移与回溯上,参考(http://blog.csdn....
分类:
其他好文 时间:
2014-07-31 20:13:07
阅读次数:
223
题目地址:POJ 2299
今天下午的多校看来没有白做。。。实在做不出题闲着无聊看小白鼠学会了个归并排序。哈哈。
归并排序简单地说其实就是先分成一个二叉树直至单个,然后依次从最底层不断进行合并,逆序对数就是在合并的过程中,加入后面的那段中到了比他大的时候,那后面的那些就都是比他大的,都是逆序对数,所以直接加上即可。网上资料很多,就不细说了。。用了分治的思想。
自己根据理解写的代码,考虑的太不...
分类:
其他好文 时间:
2014-07-29 22:01:21
阅读次数:
289
1A...火车上写的,,,
学到:
1、明确特征,分类讨论,可以防止计数重复
求逆序数的时候,算出以每个数为逆序数对的第二个数的情况之和即为序列的逆序数,这样可以防止重复
2、如果没有思路,就先从若干情况入手,自己模拟试试,找规律
这道题的规律就是,假设所有比x[i]小的数个数为c,那么当把第一个数移到序列最后,产生的新的逆序对个数为sum=sum-c+n-1-c;,减少了c,增加了n-...
分类:
其他好文 时间:
2014-07-25 11:06:51
阅读次数:
307
poj2299:http://poj.org/problem?id=2299题意:就是求逆序对。题解:直接用树状数组,但是这一题要你离散化,如果用之前的vector来离散化的话,会T的,自己用一个数组搞一下,然后二分查找,用lower_bound来搞一下,比vector要快。还有,答案要用long ...
分类:
其他好文 时间:
2014-07-22 23:32:37
阅读次数:
285
1007:DNA排序描述现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。输入第1行:....
分类:
其他好文 时间:
2014-07-22 00:26:35
阅读次数:
280
题意:废话了一大堆就是要你去求一个序列冒泡排序所需的交换的次数。
思路:实际上是要你去求一个序列的逆序队数
看案例:
9 1 0 5 4
9后面比它小的的数有4个
1后面有1个
0后面没有
5后面1个
4后面没有
所以结果为4+1+0+1+0=6
所以逆序对的定义如果不清楚可以自己总结了
这道题说白了就是要你用归并排序求逆序对数。
下面是搜到某牛给的逆序对数的方法:...
分类:
其他好文 时间:
2014-07-20 09:38:35
阅读次数:
234
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。
分类:
其他好文 时间:
2014-07-19 20:24:57
阅读次数:
198
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1394解题报告:给出一个序列,求出这个序列的逆序数,然后依次将第一个数移动到最后一位,求在这个过程中,逆序数最小的序列的逆序数是多少?这题有一个好处是输入的序列保证是0 到 n-1,所以不许要离散化,....
分类:
其他好文 时间:
2014-07-17 13:14:23
阅读次数:
283