本题是固定规则下的离散事件模拟,不是求最优调度。
某新能源公司有 N 个充电桩和 M 辆电动车需要充电。每辆车有一个预计到达时间和需要的充电时间。每辆车有预计到达时间AT、需要的充电时间CT、最大可等待时长WT(从到达后到开始充电的等待时间不能超过该值,否则车辆会离开,无法完成充电)。
为了最大化充电桩利用率,需要设计调度算法,使得尽可能多的车辆能够按时完成充电。
输入包含一行数据,格式:N,M,[AT1,CT1,WT1],[AT2,CT2,WT2],……,[ATM,CTM,WTM]
约束条件:
充电失败的车辆数量
输入
3,5,[[10,1,0],[10,1,0],[10,1,0],[10,1,0],[10,1,0]]
输出
2
说明
车辆 1 时刻 10 到达,占用充电桩 1 进行充电,充电开始时间为 10,充电时长为 1,等待时间为 0,充电结束时间为 11,即充电桩 1 释放时刻为 11,车辆 1 充电成功。
车辆 2 时刻 10 到达,充电桩 2 为空闲,充电开始时间为 10,充电时长为 1,充电结束时间为 11,即充电桩 2 释放时刻为 11,车辆 2 充电成功。
车辆 3 时刻 10 到达,充电桩 3 为空闲,充电开始时间为 10,充电时长为 1,充电结束时间为 11,即充电桩 3 释放时刻为 11,车辆 3 充电成功。
车辆 4 时刻 10 到达,充电桩 1 2 3 在 10 时刻均为占用状态,车辆 4 等待时间为 0,必须立即充电,此时无充电桩空闲,因此车辆 4 充电失败。
车辆 5 时刻 10 到达,充电桩 1 2 3 在 10 时刻均为占用状态,车辆 5 等待时间为 0,必须立即充电,此时无充电桩空闲,因此车辆 5 充电失败。
综上分析,车辆 4 5 充电失败,输出为 2。
输入
2,4,[[1,10,0],[2,2,1],[3,1,0],[4,1,0]]
输出
1
说明
车辆 1 先到占用充电桩 1 进行充电,充电开始时间为 1,充电时长为 10,充电结束时间为 11,即充电桩 1 释放时刻为 11,车辆 1 充电成功。
车辆 2 时刻 2 到达,充电桩 2 为空闲,充电开始时间为 2,充电时长为 2,充电结束时间为 4,即充电桩 2 释放时刻为 4,车辆 2 充电成功。
车辆 3 时刻 3 到达,3 时刻没有充电桩空闲,可以等待时间为 0,即 3 时刻必须进行充电,但是 3 时刻充电桩 1 充电桩 2 都还没有释放,车辆 3 充电失败。
车辆 4 时刻 4 到达,4 时刻充电桩 2 已经释放,车辆 4 可以正常充电,车辆 4 充电成功。
综上分析,只有车辆 3 充电失败,输出为 1。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册