题意解析

nn名客人在mm个接水口前,分别要接w1  wnw1~~wn分钟,求共要接多久。

思路解析

用一个数组模拟mm个接水口前排队的人,不断排序,让新的人排在剩余时间最短的队伍前,最后找所需时间最长的队伍并输出。

优化

用堆加快找最小值

for(int i=1;i<=m;i++)q.push(w[i]);
	for(int i=m+1;i<=n;i++){
		int x=q.top();
		q.pop();
		q.push(x+w[i]);
	}
	for(int i=1;i<=m;i++){
		q.pop();
	}
	cout<<q.top();

1 条评论

  • 1