打水问题(贪心算法)

题目:有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;
} 
相关推荐
GuWenyue5 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋7 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx8 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂11 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一11 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH11 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱12 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
香辣牛肉饭13 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
旖-旎13 小时前
LeetCode 279:完全平方数(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题