逆序数的性质。
1. 暴力解

 #include <stdio.h>

 #define MAXNUM 5005

 int a[MAXNUM];

 int main() {
int n;
int i, j, sum, min; while (scanf("%d", &n) != EOF) {
for (i=; i<n; ++i)
scanf("%d", &a[i]);
sum = ;
for (i=; i<n; ++i) {
for (j=i+; j<n; ++j)
if (a[j] < a[i])
++sum;
}
min = sum;
for (i=; i<n; ++i) {
sum += n - - a[i]*;
if (sum < min)
min = sum;
//printf("%d\n", sum);
}
printf("%d\n", min);
} return ;
}

2. 线段树。需要理解如何求逆序数。

 #include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; #define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1 const int maxn = ; int nums[maxn<<];
int a[maxn]; void PushUP(int rt) {
nums[rt] = nums[rt<<] + nums[rt<<|];
} void build(int l, int r, int rt) {
nums[rt] = ;
if (l == r) return;
int m = (l+r)>>;
build(lson);
build(rson);
} void update(int p, int l, int r, int rt) {
if (l == r) {
nums[rt] = ;
return ;
}
int m = (l+r)>>;
if (p <= m)
update(p, lson);
else
update(p, rson);
PushUP(rt);
} int query(int ll, int rr, int l, int r, int rt) {
if (ll<=l && rr>=r) {
return nums[rt];
}
int m = (l+r)>>;
int ret = ;
if (ll <= m)
ret += query(ll, rr, lson);
if (rr > m)
ret += query(ll, rr, rson); return ret;
} int main() {
int n;
int i, sum, min; while (scanf("%d", &n) != EOF) {
build(, n-, );
sum = ;
for (i=; i<n; ++i) {
scanf("%d", &a[i]);
sum += query(a[i], n-, , n-, );
update(a[i], , n-, );
//printf("%d: sum=%d\n", i, sum);
}
min = sum;
for (i=; i<n; ++i) {
sum += n - - a[i]*;
if (sum < min)
min = sum;
}
printf("%d\n", min);
} return ;
}

【HDOJ】1394 Minimum Inversion Number的更多相关文章

  1. 逆序数2 HDOJ 1394 Minimum Inversion Number

    题目传送门 /* 求逆序数的四种方法 */ /* 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]....t[N] 它的 ...

  2. HDU 1394 Minimum Inversion Number ( 树状数组求逆序数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number                         ...

  3. HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对)

    HDU.1394 Minimum Inversion Number (线段树 单点更新 区间求和 逆序对) 题意分析 给出n个数的序列,a1,a2,a3--an,ai∈[0,n-1],求环序列中逆序对 ...

  4. HDU 1394 Minimum Inversion Number(线段树求最小逆序数对)

    HDU 1394 Minimum Inversion Number(线段树求最小逆序数对) ACM 题目地址:HDU 1394 Minimum Inversion Number 题意:  给一个序列由 ...

  5. HDU 1394——Minimum Inversion Number——————【线段树单点增减、区间求和】

    Minimum Inversion Number Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  6. HDU 1394 Minimum Inversion Number(线段树/树状数组求逆序数)

    Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  7. HDU 1394 Minimum Inversion Number(最小逆序数 线段树)

    Minimum Inversion Number [题目链接]Minimum Inversion Number [题目类型]最小逆序数 线段树 &题意: 求一个数列经过n次变换得到的数列其中的 ...

  8. hdu 1394 Minimum Inversion Number - 树状数组

    The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that ...

  9. hdu 1394 Minimum Inversion Number 逆序数/树状数组

    Minimum Inversion Number Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showprob ...

随机推荐

  1. Mybatis中实现oracle的批量插入、更新

    oracle 实现在Mybatis中批量插入,下面测试可以使用,在批量插入中不能使用insert 标签,只能使用select标签进行批量插入,否则会提示错误 ### Cause: java.sql.S ...

  2. Js判断对象是否为空,Js判断字符串是否为空

    Js判断对象是否为空,Js判断字符串是否为空,JS检查字符串是否为空字符串 >>>>>>>>>>>>>>>&g ...

  3. 【转】Angular Input格式化

    今天在Angular中文群有位同学问到:如何实现对input box的格式化.如下的方式对吗? <input type="text" ng-model="demo. ...

  4. Object传入String类型和其他

    是可以传入的. package com.sun.test; public class Test03 { /** * @param args */ public static void main(Str ...

  5. mht文件无法打开的解决办法

    对于喜欢上网的人士来说,经常会将自己看到的好的文章保存下来,以便日后再次翻阅,保存方法有两种:一种是通过浏览器的收藏夹进行收藏,这种方式适合于能够一直上网的电脑:另一种是通过浏览器“文件->另存 ...

  6. .NET3.5中的高性能 Socket API

    转载:http://www.cnblogs.com/TianFang/archive/2007/11/09/954730.html 在 .NET Framework 2.0 版本中,System.Ne ...

  7. asp.net 操作INI文件的读写,读写操作本地ini配置文件

    using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...

  8. hdu 1018 Big Number (数学题)

    Problem Description Inmany applications very large integers numbers are required. Some of theseappli ...

  9. requirejs 笔记

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. html引入外部的jswenjian

    首先看一下引入的方式是否正确 <script type='text/javascript' src='xx.js'></script> 其次看引入的路径是否正确 如果引入了第三 ...