【USACO 2012 Open】Running Laps(树状数组)
53 奶牛赛跑
约翰有 N 头奶牛,他为这些奶牛准备了一个周长为 C 的环形跑牛场。所有奶牛从起点同时起跑,
奶牛在比赛中总是以匀速前进的,第 i 头牛的速度为 Vi。只要有一头奶牛跑完 L 圈之后,比赛就立
即结束了。
有时候,跑得快的奶牛可以比跑得慢的奶牛多绕赛场几圈,从而在一些时刻超过慢的奶牛。这就
是最令观众激动的套圈事件了。请问在整个比赛过程中,套圈事件一共会发生多少次呢?
输入格式
• 第一行:三个整数 N, L 和 C, 1 ≤ N ≤ 105 , 1 ≤ L ≤ 25000 , 1 ≤ C ≤ 25000
• 第二行到第 N + 1 行:第 i + 1 行有一个整数 Vi, 1 ≤ Vi ≤ 106
输出格式
• 单个整数:表示整个比赛过程中,套圈的次数之和
样例输入
4 2 100
20
100
70
1
样例输出
4
解释
两头速度快的奶牛会超过两头速度慢的奶牛
各一次
【分析】
稍微思考一下的题我就不会了么- -
算出每头牛跑的圈数(double),因为都是匀速,要超过完整的一圈必须圈数完整的多1。
但是n^2就会很慢。
可以拆成整数部分和小数部分来做,排个序,整数部分先直接减掉前面的,小数部分求逆序对,然后在ans里面减掉。
要用long long
代码如下:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
#define Maxn 100010
#define LL long long struct node
{
double a;
LL id;
}t[Maxn]; LL c[Maxn],v[Maxn]; LL mymax(LL x,LL y) {return x>y?x:y;}
bool cmp(node x,node y) {return x.a<y.a;}
bool cmp2(node x,node y) {return x.id<y.id;} LL n; void add(LL x,LL y)
{
for(LL i=x;i<=n;i+=i&(-i))
c[i]+=y;
} LL get_ans(LL x)
{
LL ans=;
for(LL i=x;i>=;i-=i&(-i))
ans+=c[i];
return ans;
} int main()
{
LL l,nc;
scanf("%lld%lld%lld",&n,&l,&nc);
for(LL i=;i<=n;i++) scanf("%d",&v[i]);
sort(v+,v++n);
LL sum=,ans=;
for(LL i=;i<=n;i++)
{
t[i].a=(double)(l*1.0*v[i]/v[n]);
LL x=(LL)(t[i].a);
ans+=(i-)*x-sum;
sum+=x;
t[i].a=t[i].a-x;
t[i].id=i;
}
sort(t+,t++n,cmp);
LL p=;
double now=t[].a;
t[].a=;
for(LL i=;i<=n;i++)
{
if(t[i].a-now>0.000001) p++,now=t[i].a;
t[i].a=p;
}
sort(t+,t++n,cmp2);
memset(c,,sizeof(c));
for(LL i=n;i>=;i--)
{
LL x=(LL)(t[i].a);
ans-=get_ans(x-);
add(x,);
}
printf("%lld\n",ans);
return ;
}
usaco 2012 open
2016-10-28 08:35:28
【USACO 2012 Open】Running Laps(树状数组)的更多相关文章
- [USACO]奶牛抗议(DP+树状数组+离散化)
Description 约翰家的N头奶牛聚集在一起,排成一列,正在进行一项抗议活动.第i头奶牛的理智度 为Ai,Ai可能是负数.约翰希望奶牛在抗议时保持理性,为此,他打算将所有的奶牛隔离成 若干个小组 ...
- 【USACO】奶牛抗议 树状数组+dp
题目描述 约翰家的 N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负. 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几 ...
- BZOJ3378:[USACO]MooFest 狂欢节(树状数组)
Description 每一年,约翰的N(1≤N≤20000)只奶牛参加奶牛狂欢节.这是一个全世界奶牛都参加的大联欢.狂欢节包括很多有趣的活动,比如干草堆叠大赛.跳牛栏大赛,奶牛之间有时还相互扎屁股取 ...
- Holedox Eating HDU - 4302 2012多校C 二分查找+树状数组/线段树优化
题意 一个长度$n<=1e5$的数轴,$m<=1e5$个操作 有两种一些操作 $0$ $x$ 在$x$放一个食物 $1$ 一个虫子去吃最近的食物,如果有两个食物一样近,不转变方向的去吃 ...
- BZOJ 2754 SCOI 2012 喵星球上的点名 后缀数组 树状数组
2754: [SCOI2012]喵星球上的点名 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2068 Solved: 907[Submit][St ...
- 【树状数组逆序对】USACO.2011JAN-Above the median
[题意] 给出一串数字,问中位数大于等于X的连续子串有几个.(这里如果有偶数个数,定义为偏大的那一个而非中间取平均) [思路] 下面的数据规模也小于原题,所以要改成__int64才行.没找到测试数据, ...
- UVA11525 Permutation[康托展开 树状数组求第k小值]
UVA - 11525 Permutation 题意:输出1~n的所有排列,字典序大小第∑k1Si∗(K−i)!个 学了好多知识 1.康托展开 X=a[n]*(n-1)!+a[n-1]*(n-2)!+ ...
- HDU4325 树状数组
Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- Balanced Lineup(树状数组 POJ3264)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 40493 Accepted: 19035 Cas ...
- POJ2299Ultra-QuickSort(归并排序 + 树状数组求逆序对)
树状数组求逆序对 转载http://www.cnblogs.com/shenshuyang/archive/2012/07/14/2591859.html 转载: 树状数组,具体的说是 离散化+树 ...
随机推荐
- su: cannot set user id: Resource temporarily unavailable
今天R&D所在主机出现su: cannot set user id: Resource temporarily unavailable资源不可用报错,直接通过其他机器ssh huyuh@xxx ...
- 关于IPv6
App在本地IPv6的测试环境下运行一切正常,结果又是被拒,悲剧原因还是IPv6的问题;求解决方法被拒原因We discovered one or more bugs in your app when ...
- 总结:调用startActivityForResult,onActivityResult无响应的问题
人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数. 但你是否遭遇过onActivityResult()不执行或 ...
- Unity3D 之武器系统冷却功能的实现方式
先上方法 //如果Fire1按钮被按下(默认为ctrl),每0.5秒实例化一发子弹 public GameObject projectile; public float fireRate = 0.5F ...
- EditText属性详解
关于EditText属性详解很详细的记录,转过来收着 1.EditText输入的文字为密码形式的设置 (1)通过.xml里设置: 把该EditText设为:android:password=" ...
- 《Think in Java》读书笔记一:对象
一.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的SmallTalk的五个基本特性,这些特性表现了一种纯粹的面向对象程序设计方式: 1.万物皆为对象. ...
- spring boot 配置文件提示自定义配置属性
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- Xcode8 Could not build Objective-C module 'FBSDKCoreKit'
解决方法是: 删除/Users/Rinpe/Library/Developer/Xcode/DerivedData下对应的文件夹即可.
- 《ext江湖》第8章继承-代码片段
创建Animal对象 <html> <head> <title>11</title> <META HTTP-EQUIV="Content ...
- 享元模式(咖啡屋)【java与模式】
package com.javapatterns.flyweight.coffeeshop; public class Flavor extends Order { private String fl ...