题解 1527: 蓝桥杯算法提高VIP-排队打水问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

坑人的水题,样例与题目描述不符

一个坑人的水题,打水时间是每个人的的等待时间和打水时间和,不是总共的打水时间和。#include#includeusingnamespacestd;intmain(){intn,r,t[501];inti,j,sum;cin>>n>>r;sum=0;for(i=0;i>t[i];}sort(t,

蓝桥杯算法提高VIP-排队打水问题-题解(C++代码) 贪心

先把打水时间升序排序设水龙头个数为$$m$$创建一个有$$m$$个元素的小根堆,堆中存放的是要用某个水龙头要等待的时间首先把前$$m$$个人的打水时间放入堆里,并累加之后的$$n-m$$个人每次取出堆顶,累加上这个人的打水时间放回堆里```#include#include#includeusingna

比较好懂的贪心写法

先对每个人需要打水的时间进行排序,因为前面打水越快,后面需要等待的时间越短。然后从r+1个人开始,因为有m个水龙头前m个人已经开始打水。第i个人花费的时间是第i个人打水的时间+第i-r个人(打水的时间+等待的时间)因为有r个水龙头,所以轮到第i个人的时候第i-r个水龙头以及是空的,