站外题求调!
  • 板块灌水区
  • 楼主Space_Ken
  • 当前回复8
  • 已保存回复10
  • 发布时间2025/1/16 10:11
  • 上次更新2025/1/16 13:51:55
查看原帖
站外题求调!
1004613
Space_Ken楼主2025/1/16 10:11

作者:

描述

有 m 个出水速度相同的水龙头,有 n 个人想要接水,他们所需时间分别为 t 1 ​ ,t 2 ​ ,...,t n ​ 。问:这 n 个人全部接水完毕的最早时间?

输入描述

第 1 行,两个整数 n,m 第 2 行,n 个整数 t 1 ​ ,t 2 ​ ,...,t n ​

【测试数据范围】1≤n≤10 5 ,1≤m,t i ​ ≤10 3

输出描述

输出一行一个整数

用例输入 1

6 10
5 7 9 2 8 3

用例输出 1

9

用例输入 2

5 3
9 2 7 4 6

用例输出 2

10

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,t[100001],maxx=0,s=0;
priority_queue<int> q;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i) {
		cin>>t[i];
		maxx=max(maxx,t[i]);
	}
	if(n<=m) cout<<maxx;
	else {
		for(int i=1;i<=n;++i) q.push(-t[i]);
		for(int i=1;i<=m;++i) {
			s-=q.top();
			q.pop();
			q.push(s-t[i]);
		}
		while(!q.empty()) {
			s-=q.top();
			q.pop();
		}
		cout<<s;
	}
	return 0;
}

只A了两个

2025/1/16 10:11
加载中...