洛谷 3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 题解

℡╲_俬逩灬. 提交于 2019-12-03 01:32:33
本蒟蒻又来发题解了,
一道较水的模拟题。
题意不过多解释,
思路如下:
在最开始的时候求出每头牛在t秒的位置(最终位置
然后,如果后一头牛追上了前一头牛,那就无视它,
把它们看成一个整体。
else
就++ ans;
上代码:
```cpp
#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;
}
```
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!