题目大意:求移动数列中的第一个元素到最后一位时的最少逆序数。(进行n次移动,求移动过程中最少的逆序数)
难点:
一:什么是逆序数? 定义: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列。如2431中,21,43,41,31是逆序,逆序数是4...
分类:
其他好文 时间:
2014-08-01 16:07:21
阅读次数:
153
Minimum Inversion Number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 10326 Accepted Submission(s): 6359
Problem Description
The invers...
分类:
其他好文 时间:
2014-08-01 00:08:10
阅读次数:
299
Description
The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i aj.
For a given sequence of numbers a1, a2, ..., an, if we move the ...
分类:
其他好文 时间:
2014-07-31 13:31:46
阅读次数:
229
大意:n次操作原串查询逆序数,求出所有串中最小的逆序数。求逆序数属于线段树的统计问题,建立空树,每次进行插点时进行一次query操作即可。n次操作可以套用结论:如果是0到n的排列,那么如果把第一个数放到最后,对于这个数列,逆序数是减少a[i],而增加n-1-a[i]。 1 #include 2 #....
分类:
其他好文 时间:
2014-07-30 09:46:43
阅读次数:
163
#include int main ( ){int n,a[1000],s,t,k,i=0,j;scanf("%d",&n);while(n>=10){a[i++]=n%10;n=n/10;}a[i]=n;for(k=0;kusing namespace std;int main(){ in...
分类:
其他好文 时间:
2014-07-27 10:22:42
阅读次数:
209
1A...火车上写的,,,
学到:
1、明确特征,分类讨论,可以防止计数重复
求逆序数的时候,算出以每个数为逆序数对的第二个数的情况之和即为序列的逆序数,这样可以防止重复
2、如果没有思路,就先从若干情况入手,自己模拟试试,找规律
这道题的规律就是,假设所有比x[i]小的数个数为c,那么当把第一个数移到序列最后,产生的新的逆序对个数为sum=sum-c+n-1-c;,减少了c,增加了n-...
分类:
其他好文 时间:
2014-07-25 11:06:51
阅读次数:
307
Dynamic Inversions IITime Limit:6000/3000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatusProblem Description给出N个数a[1],a[2] ... a[...
分类:
其他好文 时间:
2014-07-25 02:44:34
阅读次数:
168
今天温习树状数组,果然忘记了好多,树状数组求逆序数,值得注意这道题所有的数都是0-n-1的,所以在求最小的时候不用每个数顺序在计算一遍,我已开始就是把每个顺序又计算了一遍,果断超时了。第i个数拿到后面去,逆序数会减少a[i]-1,同时会增加n-a[i]
#include
#include
using namespace std;
int a[5005],tree[5005],n;
int low...
分类:
其他好文 时间:
2014-07-23 21:00:35
阅读次数:
186
Minimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10100Accepted Submission(s...
分类:
其他好文 时间:
2014-07-22 08:07:36
阅读次数:
212