这题适合用队列模拟。
用一个队列保存当前还没有领到粮食的副将需求,按顺序处理每一辆粮车,设当前粮车数量为 K:
古代战争期间,后方各县向前线大营运送粮草。各县派出的车队所载粮车数量不同,抵达后需要在大营外排队,每次只允许一支县车队进入营内。营内有一批副将排队等待领取粮食,队首副将记为 L1,第二人记为 L2,其余依次类推。
将军制定如下发放规则:
设当前进入营内的县车队共有 K 车粮食。
L1 的需求数,则从队首开始连续向后累加需求,寻找最大的 i,使得前 i 个副将的需求总和不超过 K,而前 i+1 个副将的需求总和大于 K。此时该县车队的粮食全部分给这 i 个副将,下一支县车队进入,原本第 i+1 个副将成为新的队首。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册