[bzoj3893][Usaco2014 Dec]Cow Jog_暴力
Cow Jog bzoj-3893 Usaco-2014 Dec
题目大意:题目链接。
注释:略。
想法:
先按照坐标排序。
我们发现每个牛只会被后面的牛影响。
所以我们考虑逆向枚举。
记录一下i+1~n的牛最近能到哪,然后判断一下当前的第i头牛能不能比那个值大就行了。
如果比那个值大,就说明当前牛能跟后面的牛合并。
如果当前的值比后面的值小,说明当前的牛是一群牛的开头。
最后,附上丑陋的代码.....
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define N 100005 using namespace std; long long n,t,last[N]; struct cow { long long spd,dic; }a[N]; int main() { cin >> n >> t ; for(int i=1;i<=n;i++) { scanf("%lld%lld",&a[i].dic,&a[i].spd); last[i]=a[i].dic+a[i].spd*t; } int ans=1; for(int i=n-1;i>=1;i--) { if(last[i]>=last[i+1]) last[i]=last[i+1]; else ans++; } printf("%d\n",ans); return 0; }
小结:最近从后向前的题好多的啊...
| 欢迎来原网站坐坐! >原文链接<