第五届蓝桥杯本科c/c++B组预赛-小朋友排队解法(归并排序求逆序数)
来源:互联网 发布:电影三部曲有哪些 知乎 编辑:程序博客网 时间:2024/04/28 05:09
#include "stdio.h" #define N 100005 int n; struct node{ int i; int low; int high; }a[N],b[N]; void Merge(node *a,int l,int r) { if(l==r) return ; int i,j,k,mid; mid = (l+r)/2; Merge(a,l,mid); Merge(a,mid+1,r); int tt=0; for(i=l,j=mid+1,k=0;i<=mid && j<=r; ) { if(a[i].i<=a[j].i) { a[i].low+=tt; b[k++] = a[i++]; } else if(a[i].i>a[j].i){ a[j].high += mid-i+1; b[k++] = a[j]; j++; tt++; } } while(i<=mid){ a[i].low+=tt; b[k++] = a[i++]; } while(j<=r) b[k++] = a[j++]; for(i=l,j=0; i<=r; i++) a[i] = b[j++]; } int main() { int i,k,w; long long ans,t; a[0].i=-1; scanf("%d",&n); for(i=1; i<=n; i++) { scanf("%d",&a[i].i); a[i].high = 0; a[i].low = 0; } Merge(a,1,n); ans = 0; for(i=1; i<=n; i++) { t = a[i].high + a[i].low; ans += t*(t+1)/2; } printf("%I64d\n",ans); return 0;}
0 0
- 第五届蓝桥杯本科c/c++B组预赛-小朋友排队解法(归并排序求逆序数)
- 历届试题 小朋友排队(归并排序求逆序数)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第十题:小朋友排队(19')(4.9修订)
- 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 小朋友排队(编程大题)
- 第五届蓝桥杯预赛 本科C/C++ B组 蚂蚁感冒
- 蓝桥杯 小朋友排队 (归并排序 逆序数 好题)
- 2014 第五届蓝桥杯预赛c/c++本科B组 解题报告
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )
- 2014年第五届蓝桥杯预赛 C/C++本科B组 快速解题思路及报告(完整版,4.9修订)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第7题:六角填数(12')
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第7题:六角填数(12')
- 历届试题 小朋友排队(树状数组求逆序数)
- 历届试题 小朋友排队(树状数组求逆序数)
- 历届试题 小朋友排队 (求逆序数,树状数组)
- 历届试题 小朋友排队(树状数组求逆序数)
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第七题:六角填数【暴力】or【DFS】
- 蓝桥杯 历届试题 小朋友排队(归并,树状数组求逆序对数)
- Thrift使用指南
- 百度云管家上传大文件网络异常时自动重启
- 从零开始学习Hadoop--推荐书目
- php文件删除unlink()详解
- 如何用AndroidStudio导入github项目
- 第五届蓝桥杯本科c/c++B组预赛-小朋友排队解法(归并排序求逆序数)
- mybatis一对多查询
- Spring+hibernate中的问题解决:java.lang.ClassCastException: $Proxy6 cannot be cast to com.mqEsb.service.imp
- vmlinux.lds
- window下mysql免安装版教程大全
- 今天遇到res\layout\activity_easy_bid.xml.r8010:0: error: Resource entry activ
- pat1055The World's Richest (25)
- 如何用Jmeter做压力测试
- c++中虚函数是怎么实现的