题目:

题目描述

FJ觉得赛马很无聊,于是决定调查将赛牛作为一种运动的可能性。他安排了N(1 <= N <= 100,000)头奶牛来进行一个L圈的赛牛比赛,比赛在一个环形的长度为C的跑道上进行。所有的奶牛在跑道上的同一个点出发,每头奶牛的速度不同,当最快的奶牛跑完L*C的距离后结束。

FJ注意到了一头奶牛超过另一头奶牛这种情况的发生,并且他想知道这种“超车事件”在整个比赛中发生了多少次。更明确地,一次超车事件被定义为一对奶牛(x, y)和一个时刻t(小于等于结束时刻),且t时刻奶牛x超越到了奶牛y的前面,请帮助FJ计算整个比赛过程中“超车事件”发生的次数。

输入

第1行,3个空格隔开的整数N、L、C(1 <= L,C <= 25,000)

第2行至第n + 1行,第i + 1行有一个整数,表示第i个奶牛的速度,范围在1..1000000之间

输出

超车总数

样例输入

4 2 100

20

100

70

1

样例输出

4

作者思路:先把速度排序,求出比赛时间,然后求答案。用t[i]表示剩下时间,s[i]表示超过圈数。注意还要处理小数。

代码:

var t,t1:array[0..100001] of extended;v,s:array[0..100001] of int64;fuck,n,l,c,sum,ans:int64;i:longint;max:extended;procedure qsort(l,r:longint);//快排
var i,j,mid:longint;
beginif l>=r then exit;i:=l; j:=r; mid:=v[i];repeatwhile v[i]>mid do inc(i);while v[j]<mid do dec(j);if i<=j thenbeginv[0]:=v[i];v[i]:=v[j];v[j]:=v[0];inc(i);dec(j);end;until i>j;qsort(l,j);qsort(i,r);
end;
procedure megen(x,y:longint);//归并
var mid,i,j,k:longint;
beginif x=y then exit;mid:=(x+y) div 2;megen(x,mid); megen(mid+1,y);i:=x; j:=mid+1;k:=x;while (i<=mid)and(j<=y) doif t[i]-t[j]>-0.0000001 thenbegint1[k]:=t[i];inc(i); inc(k);end elsebegint1[k]:=t[j];inc(j); inc(k);fuck:=fuck+mid-i+1;end;while (i<=mid) dobegint1[k]:=t[i];inc(i); inc(k);end;while j<=y dobegint1[k]:=t[j];inc(j);inc(k);end;for i:=x to y do t[i]:=t1[i];
end;
begin{assign(input,'running.in');assign(output,'running.out');reset(input);rewrite(output);      }read(n,l,c);for i:=1 to n do read(v[i]);qsort(1,n);max:=l*c/v[1];//比赛时间for i:=1 to n dobegins[i]:=trunc(v[i]*max/c);l:=s[i]*c;t[i]:=v[i]*max-l;end;for i:=n downto 1 dobeginsum:=sum+(n-i)*(s[i]-s[i+1]);ans:=ans+sum;end;megen(1,n);write(ans-fuck);close(input);close(output);end.//谢谢祝子扬的指导

【USACO Open 2012银】跑步Running laps (jzoj第四题)(变态)相关推荐

  1. jzoj P1542 【USACO Open 2012银】跑步Running laps

    题目描述 FJ觉得赛马很无聊,于是决定调查将赛牛作为一种运动的可能性.他安排了N(1 <= N <= 100,000)头奶牛来进行一个L圈的赛牛比赛,比赛在一个环形的长度为C的跑道上进行. ...

  2. 【USACO 2012 Open】Running Laps(树状数组)

    53 奶牛赛跑 约翰有 N 头奶牛,他为这些奶牛准备了一个周长为 C 的环形跑牛场.所有奶牛从起点同时起跑, 奶牛在比赛中总是以匀速前进的,第 i 头牛的速度为 Vi.只要有一头奶牛跑完 L 圈之后, ...

  3. usaco 2012 Open【Running Laps奶牛赛跑】

    Description 约翰有 N 头奶牛,他为这些奶牛准备了一个周长为 C 的环形跑牛场.所有奶牛从起点同时起跑, 奶牛在比赛中总是以匀速前进的,第 i 头牛的速度为 Vi.只要有一头奶牛跑完 L ...

  4. 2012浙大878计算机专业基础综合大题答案解析

    整理了2012浙大878计算机专业基础综合大题的解析 其中数据结构中用到的两个难点: 1. 优先队列的最大堆的实现    参阅文章<最大堆MaxHeap和最小堆MinHeap的实现(转)> ...

  5. 什么是人们常用的计算机设备之一,2012全国计算机一级考试一级B样题

    2012全国计算机一级考试一级B样题 分类:计算机等级| 更新时间:2012-07-10| 来源:转载 一.选择题 1.计算机之所以能按人们的意志自动进行工作,最直接的原因是因为采用了 A)二进制数制 ...

  6. [USACO 2012 Open]Running Laps奶牛赛跑

    题目链接:找不到QWQhttp://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=4074 [在一个并没有 ...

  7. [USACO08JAN]跑步Running

    题目描述 The cows are trying to become better athletes, so Bessie is running on a track for exactly N (1 ...

  8. NOIP2016提高组 第一天第二题 天天爱跑步running 题解

    题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.«天天爱跑步»是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵包含 个结点 ...

  9. 截止8月31日,2012年跑步总量满1000公里

    注:本文由BeyondVincent(破船)原创首发 转载请注明出处:BeyondVincent(破船)@DevDiv.com 掐指一算,截止8月31日,2012年我跑步总量已经满1000公里(准确距 ...

最新文章

  1. C++知识点61——typename与class、模板编程与继承、模板类和友元、类模板与static成员
  2. SecureCRT中的实用配置
  3. 约瑟夫环 java_约瑟夫环Java实现
  4. poj 2378 (dijkstra)
  5. 全自动光电整纬机安装和功能分析
  6. 傅立叶变换,时域,频域一
  7. 智能优化算法:野马优化算法-附代码
  8. 以后给孩子起名字不用发愁了,先存着
  9. 如何操作才能实现音频合并无缝衔接?只要掌握这个技巧
  10. [英文邮件] 感谢信的标题
  11. 去中心化的区块链如何理解?
  12. 程序员的贫富两极分化,穷的穷死,富的富死,我就是那“穷鬼”?
  13. 金额保留小数点后两位方法
  14. 超级账本Hyperledger Fabric的使用
  15. 个人家用nas_家庭私有云盘系列教程-本地搭建家庭NAS方案
  16. rabbitmq安装 虚拟ip_步骤4:配置IPv6地址
  17. JVM内存模型篇【JVM内存模型】
  18. 数据库课程设计--公交车管理系统总结(Qt学习小结)
  19. Perl的opendir
  20. 充电桩云平台-一站式运营服务平台

热门文章

  1. 自己早期写的一个简单上下班打卡统计工时的考勤系统【整理版】
  2. 排序1:几种基本的排序方法
  3. 【2023秋招大厂真题】华为校招-2022.10.11-字母加密
  4. C++学习笔记(二十八)
  5. 监狱3D指纹门禁系统解决方案
  6. requests 爬取博客园内容AttributeError: ‘NoneType‘ object has no attribute ‘xpath‘
  7. YolactEdge:边缘设备上的实时实例分割(Xavier: 30 FPS, RTX 2080 Ti:170 FPS)
  8. 如何用蓝牙实现无线定位(一)--系统原理
  9. 云之道智慧预约系统V1.2.8源码
  10. 北京计算机二学位_我为整个大学的计算机科学学位使用了廉价的Chromebook