P5017 [NOIP2018 普及组] 摆渡车 题解

这篇博客介绍了一道关于摆渡车调度的算法题,目标是最小化所有同学的等车时间之和。文章通过举例和解析,详细阐述了如何运用动态规划的方法求解,包括状态定义、状态转移方程的优化,并提供了代码实现,帮助读者理解算法思路。
摘要由CSDN通过智能技术生成

题目传送门

 题目描述

有 n 名同学要乘坐摆渡车从人大附中前往人民大学,第 i 位同学在第 ti 分钟去 等车。只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。摆渡车从人大附中出发、 把车上的同学送到人民大学、再回到人大附中(去接其他同学),这样往返一趟总共花费 $m$ 分钟(同学上下车时间忽略不计)。摆渡车要将所有同学都送到人民大学。  

凯凯很好奇,如果他能任意安排摆渡车出发的时间,那么这些同学的等车时间之和最小为多少呢?    

注意:摆渡车回到人大附中后可以即刻出发。

输入格式

第一行包含两个正整数 $n, m$,以一个空格分开,分别代表等车人数和摆渡车往返一趟的时间。    
第二行包含 $n$ 个正整数,相邻两数之间以一个空格分隔,第 $i$ 个非负整数 $t_i$ 代表第 $i$ 个同学到达车站的时刻。

输出格式

输出一行,一个整数,表示所有同学等车时间之和的最小值(单位:分钟)。

样例 #1

样例输入 #1
5 1 
3 4 4 3 5

样例输出 #1
0

 样例 #2

样例输入 #2
5 5 
11 13 1 5 5

样例输出 #2
4

提示

【输入输出样例 1 说明】    

同学 $1$ 和同学 $4$ 在第 $3$ 分钟开始等车,等待 $0$ 分钟,在第 $3$ 分钟乘坐摆渡车出发。摆渡车在第 $4$ 分钟回到人大附中。   
同学 $2$ 和同学 $3$ 在第 $4$ 分钟开始等车,等待 $0$ 分钟,在第 $4$ 分钟乘坐摆渡车 出发。摆渡车在第 $5$ 分钟回到人大附中。   
同学 $5$ 在第 $5$ 分钟开始等车,等待 $0$ 分钟,在第 $5$ 分钟乘坐摆渡车出发。自此 所有同学都被送到人民大学。总等待时间为 $0$。

【输入输出样例 2 说明】   

同学 $3$ 在第 $1$ 分钟开始等车,等待 $0$ 分钟,在第 $1$ 分钟乘坐摆渡车出发。摆渡 车在第 $6$ 分钟回到人大附中。   
同学 $4$ 和同学 $5$ 在第 $5$ 分钟开始等车,等待 $1$ 分钟,在第 $6$ 分钟乘坐摆渡车 出发。摆渡车在第

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值