P2909 [USACO08OPEN]牛的车Cow Cars
显然的贪心。
按速度从小到大排序。然后找车最少的车道,查询是否能填充进去。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define re register 6 using namespace std; 7 int n,m,D,l,ans,a[50002],d[50002]; 8 int main(){ 9 scanf("%d%d%d%d",&n,&m,&D,&l); 10 for(re int i=1;i<=n;++i) scanf("%d",a+i); 11 sort(a+1,a+n+1); 12 for(re int i=1,p=0;i<=n;++i) 13 if(a[i]-D*d[p]>=l) ++d[p],++ans,p=(p+1)%m;//填充进去,下一个车道 14 printf("%d",ans); 15 return 0; 16 }