打水问题(贪心算法)

题目:有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;
} 
相关推荐
测试_AI_一辰11 小时前
AI Agent 评测最隐蔽的坑-记忆
人工智能·算法·ai·自动化·ai编程
lucas_AI11 小时前
给YOLO检测器插 LoRA,'插对地方'比'插什么'更要命
人工智能·算法
LuminousCPP12 小时前
数据结构-时间与复杂度|时间/空间复杂度 + 两道力扣练习 + 二分查找复盘
c语言·数据结构·经验分享·算法·leetcode
Nil20812 小时前
leetcode 三数之和
数据结构·算法·leetcode
小小龙学IT12 小时前
C++ std::vector 底层实现深度解析:内存布局、扩容策略、移动语义与迭代器失效
开发语言·c++·算法
eBest数字化转型方案12 小时前
从工程视角拆解冰柜资产管理:拍照识别 pipeline、纯净度算法与 IoT 选型踩坑
人工智能·物联网·算法
Interview Aid11212 小时前
Roblox OA 面经|小游戏+编程双修,Coding 两题满分通过
算法
闲研随记13 小时前
【文献阅读 ICLR 2026】RL算法:Co-Rewarding
算法
青山木13 小时前
Hot 100 --- 最小栈
java·数据结构·算法·leetcode
疯狂打码的少年13 小时前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法