1:Freda的越野跑查看提交统计提问总时间限制: 1000ms 内存限制: 262144kB描述Freda报名参加了学校的越野跑。越野跑共有N人参加,在一条笔直的道路上进行。这N个人在起点处站成一列,相邻两个人之间保持一定的间距。比赛开始后,这N个人同时沿着道路向相同的方向跑去。换句话说,这N个人可以看作x轴上的N个点,在比赛开始后,它们同时向x轴正方向移动。
假设越野跑的距离足够远,这N个人的速度各不相同且保持匀速运动,那么会有多少对参赛者之间发生“赶超”的事件呢?
输入第一行1个整数N。
第二行为N 个非负整数,按从前到后的顺序给出每个人的跑步速度。
对于50%的数据,2<=N<=1000。
对于100%的数据,2<=N<=100000。输出一个整数,表示有多少对参赛者之间发生赶超事件。样例输入5
1 3 10 8 5样例输出7提示我们把这5个人依次编号为A,B,C,D,E,速度分别为1,3,10,8,5。
在跑步过程中:
B,C,D,E均会超过A,因为他们的速度都比A快;
C,D,E都会超过B,因为他们的速度都比B快;
C,D,E之间不会发生赶超,因为速度快的起跑时就在前边。

注意cnt的溢出!!

#include <iostream>
using namespace std;
int n;
int a[100005];
long cnt = 0;
int temp[100005];
void merge(int left, int right, int mid)
{int index1 = left, index2 = mid+1;for (int i = left; i <= right; i++) {temp[i] = a[i];}int s = left;while (index1 <= mid && index2 <= right) {if (temp[index1] <= temp[index2]) {a[s++] = temp[index1++];}else {cnt += (mid - index1 + 1);a[s++] = temp[index2++];}} // 1 2 3 4 5while (index1 <= mid) {//cnt++;a[s++] = temp[index1++];}while (index2 <= right ) {//cnt++;a[s++] = temp[index2++];}}void mymerge(int left, int right)
{if (left < right){int mid = (left + right) / 2;mymerge(left, mid);mymerge(mid + 1, right);merge(left, right, mid);}
}int main()
{/*freopen("i.txt", "r", stdin);freopen("o.txt", "w", stdout);*/cin >> n;for (int i = 0; i < n; i++) {cin >> a[i];a[i] = -a[i];}mymerge(0, n-1);/*for (int i = 0; i < n; i++){cout << endl <<  a[i];}*/cout << cnt;return 0;
}

open judge 内排序:Freda的越野跑相关推荐

  1. 青少年软件编程(C语言)等级考试试卷(八级) 2.Freda的越野跑

    Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的间距.比赛开始后,这N个人同时沿着道路向相同的方向跑去.换句话说,这N个 ...

  2. Freda的越野跑(openjudge)

    Freda的越野跑-openjudge    归并算法求逆序对数 描述 Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的 ...

  3. 【解题报告】openjudge Freda的越野跑 数据结构与算法mooc 内排序

    描述 Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的间距.比赛开始后,这N个人同时沿着道路向相同的方向跑去.换句话说, ...

  4. poj:Freda的越野跑 求正序对数

    Freda报名参加了学校的越野跑.越野跑共有N人参加,在一条笔直的道路上进行.这N个人在起点处站成一列,相邻两个人之间保持一定的间距.比赛开始后,这N个人同时沿着道路向相同的方向跑去.换句话说,这N个 ...

  5. 1 sec on Large Judge (java): https://github.com/l...

    1 sec on Large Judge (java): https://github.com/leoyonn/leetcode/blob/master/src/q029_substring_of_a ...

  6. Online Judge上陪审团选人问题用Java实现的一个AC解

    原问题位于:http://poj.org/problem?id=1015 以下为问题描述的摘录: In Frobnia, a far-away country, the verdicts in cou ...

  7. 润乾报表实现组内排序报表及改进

    报表开发中经常会遇到需要进行组内排序的报表,如按月份的分组汇总值排序显示,并显示每月销售额前十名的记录.使用报表工具一般通过隐藏行列辅助可以实现,下面通过实例说明润乾报表的实现过程,以及改进方案. 报 ...

  8. Judge Judy

    Judge Judy's comcast [url]http://www.fancast.com/tv/Judge-Judy/90266/main[/url] 转载于:https://blog.51c ...

  9. MySQL组内排序取最大值

    最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题.问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create tabl ...

最新文章

  1. zip() python
  2. 【转】如何在Mac上卸载Java及安装Java
  3. Dynamic AX ERP 4.0 数据导出(上)
  4. maven找到mysql 连接池_在Tomcat6.0+MySQL5.0环境下配置和使用数据库连接池
  5. 【贪心】Vijos P1615 旅行
  6. c语言 if判断条件语句吗,if条件判断语句,谁能帮我分析一下?
  7. 数据结构区间问题总结
  8. HALCON 21.11:深度学习笔记---术语表(7)
  9. 系统安装教程:Windows7硬盘安装方法详细图文教程及使用工具下载
  10. Android Button 实现阴影边界
  11. 数据库—并发调度的可串行性
  12. 3D 专业词汇 (转)
  13. 微带滤波器摘要_微带滤波器
  14. u盘插到电脑计算机里没有反应,U盘插在Windows7电脑上没反应怎么办?
  15. 展讯平台初步调试笔记
  16. 维纳辛钦定理的证明一
  17. java基于SSM医药后台管理系统
  18. win 10 mstsc连接 RemoteApp
  19. 求sinx/x的极限
  20. Nextchip,信息大全,QQ:87219158

热门文章

  1. linux dosbox 窗口大小,Linux下dosbox的配置
  2. Linux 测试IP和端口是否能访问
  3. winform遍历bartender_C# 调用Bartender服务并打印bartender标签
  4. html 筛选车型框,展厅对应车型.html
  5. RAID磁盘冗余阵列
  6. hypermesh 连接单元_HRS连接器U.FL-R-SMT-1(10)插座样图查询
  7. 胖哈勃杯第十三届CUIT校赛web300短域名工具wp及出题心得
  8. 编码器 协议不公开_公开编码的3种后果
  9. 前端十五道html面试题
  10. UNETR 医学图像分割架构 2D版 (Tensorflow2 Keras 实现UNETR)