题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3743

题目意思就是给你一个长为n的序列,让你求逆序对.我用的是归并排序来求的.归并排序有一个合并的过程,分前后两段,当a[i] > a[j]时,说明a[j]比前面那段啊[i],a[i+1],a[i+2]....,a[mid],比这些都要小,所以总逆序对数要加上mid-i+1.

 // File Name: HDU3743.cpp
// Author: xiaxiaosheng
// Created Time: 2015年03月09日 星期一 21时54分45秒 #include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime> using namespace std;
typedef __int64 INT;
const int maxn = 10e6+; int n,A[maxn],temp[maxn];
INT ans;
void merger(int *A,int s,int mid,int e)
{
int k = ,i = s,j = mid+;
while(i <= mid && j <= e)
{
if(A[i] < A[j])
temp[k++] = A[i++];
else
{
ans += (mid-i+);
temp[k++] = A[j++];
}
}
while(i <= mid) temp[k++] = A[i++];
while(j <= e) temp[k++] = A[j++];
for(int i = ;i < k;++i)
A[s+i] = temp[i];
}
void mergersort(int *A,int s,int e)
{
if(s < e)
{
int mid = (s + e) / ;
mergersort(A,s,mid);
mergersort(A,mid+,e);
merger(A,s,mid,e);
} }
int main(){
while(scanf("%d",&n)!=EOF)
{
for(int i = ;i < n;++i)
scanf("%d",&A[i]);
ans = ;
mergersort(A,,n-);
printf("%I64d\n",ans);
}
return ;
}

最新文章

  1. OAF 中的EO 和VO
  2. Java虚拟机11:运行期优化
  3. Linux账号密码过期会导致crontab作业不能执行
  4. 【9-15】python学习笔记01
  5. TASKKILL命令使用大全
  6. JAVA基础知识之多线程——线程的生命周期(状态)
  7. CF 107E 多边形面积并
  8. json-lib 中关于null与&quot;null&quot;
  9. HDOJ 1316 How Many Fibs?
  10. jQuery.extend()方法和jQuery.fn.extend()方法
  11. php对文件操作(读、写、)的基础知识(详细)
  12. JSWebAPI
  13. 2019.3.15 关于IE
  14. libmysqlclient version
  15. DLL封装Interface(接口)(D2007+win764位)
  16. bisect
  17. ajax 使用 三种方法 设置csrf_token的装饰器
  18. jquery validate 之多tab页同时校验问题
  19. Solr的入门知识
  20. Python爬虫实例(一)爬取百度贴吧帖子中的图片

热门文章

  1. 添加css的方式:link与@import区别
  2. Java 性能优化技巧集锦
  3. C#------对SQLServer进行简单的增,删,改,查
  4. PHP实现观察者模式
  5. php5.1以上版本时间戳_时间戳与日期格式转换_相差8小时 的解决方案
  6. htons
  7. Java实例分析:宠物商店
  8. JSONModel 嵌套字典数组 JSONModel nest NSDictionary NSArray
  9. Python 开发与测试 Webservice(SOAP)
  10. Lua 之os库