贪心算法(算法竞赛、蓝桥杯)--排队接水问题

1、B站视频链接:A25 贪心算法 P1223 排队接水_哔哩哔哩_bilibili

题目链接:排队接水 - 洛谷

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
struct node{
	int t,id;//接水时间,编号
	bool operator<(node &b){
		return t<b.t;
	} 
}a[1010];

int main(){
	int n;cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].t,a[i].id=i;
	}
	sort(a+1,a+1+n);
	for(int i=1;i<=n;i++){
		cout<<a[i].id<<" ";
	}
	puts("");
	
	double time=0;
	for(int i=1;i<=n-1;i++){//因为最后一个人不需要等待所有n-1 
		time+=a[i].t*(n-i);
	}
	printf("%.2lf",time/n);
	return 0;
}

2、B站视频链接:A26 贪心算法 P1190 [NOIP2010 普及组] 接水问题_哔哩哔哩_bilibili

题目链接:[NOIP2010 普及组] 接水问题 - 洛谷

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
int n,m,w[10010];//w是接水量
int s[110];//每个龙头的出水量

int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&w[i]);
	for(int i=1,t;i<=n;i++){
		t=1;//假设1号水龙头排水量最少
		//找到排水量最小的水龙头
		for(int j=2;j<=m;j++){
			if(s[t]>s[j])t=j;
		} 
		s[t]+=w[i];
	}
	int maxn=0;
	for(int i=1;i<=m;i++)maxn=max(maxn,s[i]);
	printf("%d\n",maxn);	
	return 0;
} 

小根堆实现版

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
int n,m,w[10010];//w是接水量
priority_queue<int,vector<int>,greater<int>>s;
//小根堆维护最小值 
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d",&w[i]);
	
	for(int i=1;i<=m;i++)s.push(0);
	for(int i=1;i<=n;i++){
		int t=s.top();s.pop();//维护最小出水量 
		s.push(t+w[i]);
	}
	for(int i=1;i<m;i++){//把小的全部弹出,剩下的即为最大 
		s.pop();
	}
	printf("%d\n",s.top());
	return 0;
}

题目链接:[USACO05MAR] Yogurt factory 机器工厂 - 洛谷

cpp 复制代码
#include <bits/stdc++.h> 
using namespace std;
//上次的单价花费+s与当前单价花费做比较,
//哪个花费更少,就取哪个。
int main(){
	int n,s,c,y,last;//last表示上次的生产花费 
	long long ans=0;
	cin>>n>>s;
	for(int i=1;i<=n;i++){
		cin>>c>>y;		
		if(i==1)last=c;//没有last取自己为当前 
		else last=min(last+s,c);
		ans+=last*y;
	}
	cout<<ans<<endl;
	return 0;
} 
相关推荐
快手技术44 分钟前
快手提出端到端生成式搜索框架 OneSearch,让搜索“一步到位”!
算法
CoovallyAIHub20 小时前
中科大DSAI Lab团队多篇论文入选ICCV 2025,推动三维视觉与泛化感知技术突破
深度学习·算法·计算机视觉
NAGNIP21 小时前
Serverless 架构下的大模型框架落地实践
算法·架构
moonlifesudo21 小时前
半开区间和开区间的两个二分模版
算法
moonlifesudo21 小时前
300:最长递增子序列
算法
CoovallyAIHub1 天前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
英伟达ViPE重磅发布!解决3D感知难题,SLAM+深度学习完美融合(附带数据集下载地址)
深度学习·算法·计算机视觉
聚客AI2 天前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm
大怪v2 天前
前端:人工智能?我也会啊!来个花活,😎😎😎“自动驾驶”整起!
前端·javascript·算法
惯导马工2 天前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法