2022年4月10日拼多多笔试第四题
#拼多多#  有m辆车要通过摆渡船到对岸去,一次摆渡最多装n辆车,一次从一侧到对岸的时间为x,往返时间为2x,求最后一辆车到达对岸的最短时间.
思路:贪心算法,尽量摆渡船尽量载满再出发,因为如果有两辆车分两次摆渡,需要等待摆渡船返回的时间。只有在后续车辆距离第一辆上船车辆的时间大于2x时才不等后续车辆。

#include
(5488)#include
#include
(7278)#include
#include
(5863)#include

using namespace std;
int main() {
int m, n, x;
cin >> m >> n >> x;
vector a(m);
for (int i = 0; i < m; ++i) {
cin>>a[i];
}
sort(a.begin(), a.end());
int t=0;
for(int i=0;iint temp = i;
for (int j = 1; j + i < m&&jif (a[i + j] - a[i] <= 2 * x) {
temp = i + j;
}
else {
break;
}
}
t =max(t,a[temp])+2*x;
i = temp;
}
t = t - x;
cout << t;
return 0;
}
全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务