题目: http://acm.hdu.edu.cn/showproblem.php?pid=1394

没看到多组输入,WA了一万次。。。。。。

其实很简单,有人暴力过得,我感觉归并排序、二叉排序树求逆序数都可以,但是我没写。

 #include <stdio.h>
#include <string.h> const int MAXN = ; struct Tree_Node
{
int left, right;
int num;
} tree[MAXN<<]; void build(int left, int right, int step)
{
tree[step].left = left;
tree[step].right = right;
tree[step].num = ;
if(left == right)
return;
int mid = (left + right) >> ;
build(left, mid, step<<);
build(mid+, right, step<<|);
} void insert(int cur, int step)
{
if(cur >= tree[step].left && cur <= tree[step].right)
tree[step].num++;
if(tree[step].left == tree[step].right)
return;
int mid = (tree[step].left + tree[step].right) >> ;
if(cur <= mid)
insert(cur, step<<);
else
insert(cur, step<<|);
} int query(int left, int right, int step)
{
if(tree[step].left == left && tree[step].right == right)
{
return tree[step].num;
}
int mid = (tree[step].left + tree[step].right) >> ;
if(right <= mid)
{
return query(left, right, step<<);
}
else if(left > mid)
{
return query(left, right, step<<|);
}
else
{
return query(left, mid, step<<) + query(mid+, right, step<<|);
}
} int main()
{
int n, x[MAXN];
while(scanf("%d", &n) != EOF)
{
int ans = ;
build(, n, );
for(int i = ; i < n; i++)
{
scanf("%d", &x[i]);
ans += query(x[i]+, n, );
insert(x[i], );
}
int tmp = ans;
for(int i = ; i < n; i++)
{
tmp += n - x[i] - x[i] - ;
if(tmp < ans)ans = tmp;
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. ListMultimap 容器
  2. jquery easyui tabs单击刷新右键刷新
  3. Swipe to back not working滑动后退功能消失?
  4. zabbix使用host metadata方式主动注册
  5. 巧妙的实现 CSS 斜线(炫酷的小效果)
  6. PHP获取汉字的转化为拼音字母实现程序
  7. Android 编程之第三方开发 MaoZhuaWeiBo微博开发演示样例-1
  8. jquery源码 DOM加载
  9. 范围for循环
  10. Linux第七节课学习笔记
  11. eMMC基础技术2:eMMC概述
  12. Webpack与其他打包工具的区别
  13. InfluxDB1.2.4部署(centos6.8)
  14. Linux基础命令---删除用户userdel
  15. Python基础6--函数、类和文件操作
  16. Emac
  17. Swagger ui测试中的验证 apikey
  18. Java图形界面设计——substance皮肤
  19. Python入门之面向对象编程(四)Python描述器详解
  20. Bootstrap 3之美01-下载并引入页面

热门文章

  1. jitsi
  2. c#中cookies的存取操作
  3. systemtap 列出所有linux 内核模块与相关函数2
  4. 使用Doxygen工具生成Cocos2D-x 2.1.0文档
  5. Sample Ant Build File - WAR--reference
  6. 使用JUnit4与JMockit进行打桩测试
  7. Top 10 Uses of a Message Queue
  8. Asp.net中前台javascript与后台C#交互
  9. SQL SERVER格式化字符串位数,不足补零
  10. virtualbox安装ubuntu出现“The system is running in low-graphics mode”