打水问题(贪心算法)

题目:有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2.........tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?通过键盘输入排队打水的人数以及每人打水的时间和水龙头数,使用贪心算法求出所有人完成打水总共花费的时间的最小值。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int t[N]; //打水时间 
int s[N]; //每个人等待的时间
 
int res=0; //总花费时间 
signed main(){
	
	int n,r;
	cin>>n>>r;
	for(int i=1;i<=n;i++)
	cin>>t[i];
	sort(t+1,t+1+n); //从大到小 
	//前r个前缀和直接等于本身 
	for(int i=1;i<=r;i++) s[i]=t[i];
	//纵向前缀和 ,在前面人接水的过程中,后面的人需要等待 
	for(int i=r+1;i<=n;i++) s[i]=s[i-r]+t[i];
	
	//求总和等待时间
	for(int i=1;i<=n-r;i++) res+=s[i];
	cout<<res<<endl; 
	
	return 0;
} 
相关推荐
2601_967979122 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
程序猿打工仔2 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
通信小呆呆2 小时前
电子战干扰技术:从“蛮力压制”到“精准欺骗”,再到“认知博弈”
算法·通信·isac
老师我太想进步了20263 小时前
【数据结构-6】算法美学之单链表(1)
数据结构·算法
希望我万事顺遂4 小时前
力扣hot100-滑动窗口最大值
数据结构·算法·leetcode
꧁细听勿语情꧂4 小时前
二叉树余题,排序、直接插入排序、希尔排序
c语言·开发语言·数据结构·算法
是main不是漫4 小时前
【双指针|LeetCode1089 复写零】巧用逆向思路,破解原地覆盖陷阱
数据结构·算法·leetcode
专注仿真14 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法
罗西的思考15 小时前
【轻量化复刻大模型 / KIMI K3】AttnRes 模块交互式演示
人工智能·算法·机器学习
好悬给我拽开线19 小时前
ZILOT 论文解析
算法