概述
Description
编号为1到
N
的
在经历过糟糕的驾驶事故之后,奶牛们变得十分小心,避免碰撞的发生.每条车道上,如果某一只奶牛
i
的前面有
Input
第1行输入
N
,
N<=50000
Output
输出最多有多少奶牛可以在高速公路上行驶。
Sample Input
3 1 1 5
5
7
5
输入解释
三头牛开车过一个通道.当一个牛进入通道时,它的速度V会变成V-D*X(X代表在它前面有多少牛),它减速后,速度不能小于L
INPUT DETAILS
There are three cows with one lane to drive on, a speed decrease of 1, and a minimum speed limit of 5.
Sample Output
2
OUTPUT DETAILS
Two cows are possible, by putting either cow with speed 5 first and the cow with speed 7 second.
HINT
Source
Silver
思路
先将牛按最高速度升序排列,枚举每一头牛,每次将牛放入车辆最少的那条车道,可以证明这样做是最优的。
代码
#include <cstdio>
#include <algorithm>
const int maxn=50000;
int n,m,d,l,ans,k;
int v[maxn+10],b[maxn+10];
int main()
{
scanf("%d%d%d%d",&n,&m,&d,&l);
for(int i=1; i<=n; i++)
{
scanf("%d",&v[i]);
}
std::sort(v+1,v+n+1);
k=1;
for(int i=1; i<=n; i++)
{
if(v[i]-b[k]*d>=l)
{
ans++;
b[k]++;
k++;
if(k>m)
{
k=1;
}
}
}
printf("%dn",ans);
return 0;
}
最后
以上就是香蕉水池为你收集整理的[Usaco2008 Open]Cow Cars 奶牛飞车的全部内容,希望文章能够帮你解决[Usaco2008 Open]Cow Cars 奶牛飞车所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复