题解
2024-10-13 15:21:55
发布于:广东
15阅读
0回复
0点赞
似乎是唯一一个时间复杂度 的
记录每一个水龙头供水时间,显然当前供水时间最少的就是下一个人要接的
那么我们就能用小根堆模拟
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
int a[100005];
priority_queue <int, vector <int>, greater <int>> q;
int main(){
int n, m;
cin >> n >> m;
for(int i = 1; i <= m; i++){
cin >> a[i];
q.push(a[i]);
}
for(int i = m + 1; i <= n; i++){
cin >> a[i];
int tmp = q.top();
q.pop();
q.push(tmp + a[i]);
}
while(q.size() != 1) q.pop();
cout << q.top();
return 0;
}
这里空空如也
有帮助,赞一个