<span>洛谷 3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 题解</span>
本蒟蒻又来发题解了,
一道较水的模拟题。
题意不过多解释,
思路如下:
在最开始的时候求出每头牛在t秒的位置(最终位置
然后,如果后一头牛追上了前一头牛,那就无视它,
把它们看成一个整体。
else
就++ ans;
上代码:
#include<bits/stdc++.h>
using namespace std;
//要开long long
long long n, t, ans = 1, last[100010];
struct node
{
long long s, p;
}a[100010];
int main()
{
scanf("%lld%lld", &n, &t);//输入
for(int i = 1; i <= n; ++ i)
{
scanf("%lld%lld", &a[i].p, &a[i].s);//输入
last[i] = a[i].p + a[i].s * t;//记录下它的最终位置。
}
for(int i = n - 1; i >= 1; -- i)
{
if(last[i] >= last[i + 1])//如果,追上来,就看成一样的
last[i] = last[i + 1];
else
++ ans;//++ ans
}
printf("%lld", ans);//输出
return 0;
}