zoukankan      html  css  js  c++  java
  • Problem: [Usaco2014 Dec]Cow Jog

    Problem: [Usaco2014 Dec]Cow Jog

    Time Limit: 1 Sec Memory Limit: 128 MB

    Description

    奶牛们又出来锻炼她们的蹄子了!这里有N头奶牛在无穷无尽的单车道上慢(1≤N≤100,000)。每一头奶牛在道路的不同位置起跑,且一些奶牛跑步的速度不同。因为道路只有一个车道,所以这些奶牛不能“超车”。当跑得快的奶牛追上另一头奶牛时,她必须慢下来以防撞上另一头奶牛,这样她也成为了这个跑步组的一员。最终,没有任何奶牛相互撞上。农夫John想知道当这发生时,一共有多少跑步组剩下。请帮助他算出这个数目。

    Input

    第一行输入包含整数N。
    以下的N行每行包含一个奶牛的初始位置和速度。位置是非负整数,速度是正整数;这两个数字最大值是十亿。所有的奶牛初始位置不同,数据将按照初始位置递增的顺序输入。

    Output

    一个单独的整数表示有多少组剩下。

    Sample Input

    5
    0 1
    1 2
    2 3
    3 2
    6 1

    Sample Output

    2
    HINT
    首先3号牛会追上4号牛,于是它的速度变为2,然后3,4号牛会追上5号牛,速度全变为1,然后2号牛会追上(3,4,5)号牛,成为一组。只有1号牛速度最慢,于是5头牛分成了2组
    代码如下

    #include<stdio.h>
    #define N 101000
    using namespace std;
    long long n,m=2000000000;
    long long p[N],s[N];
    int main() {
    	scanf("%d",&n);
    	int i;
    	for(i=1; i<=n; i++)
    	scanf("%d %d",p+i,s+i);
    	int ans=0;
    	for(i=n; i; i--) {
    		int now=i;
    		ans++;
    		while(i&&(s[i-1]-s[now])*m>=(p[now]-p[i-1]))i--;
    	}
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    Nginx--sub_filter模块
    Scala学习5 objext
    Scala学习4 Class
    Scala学习3 Map
    Scala学习2 Array、ArrayBuffer
    Scala学习1 基本数据类型,条件,循环
    flink1.9新特性:维表Join解读
    Blink源码编译
    Flink Maven项目兼容多版本Kafka
    Ant build.xml程序简单说明
  • 原文地址:https://www.cnblogs.com/ZhaoChongyan/p/11740447.html
Copyright © 2011-2022 走看看