洛谷P2240——贪心算法

贪心算法是好理解的,是简单的,但是困难的可能是结构体的应用,stl的使用等等,下面这道题就体现了这一点。

这道题主要要算单价,通过比较单价来排序,并计算。

如果单开数组,排完单价,不能将这一顺序copy到另外两个指标上,但是结构体可以很好的完成这一点。

AC代码示例

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
struct Node{
	double v,m,p;
}a[105];
bool cmp(Node a,Node b){
	return a.p>b.p;
}
double sum,t;
int n;
int main(){
	
	sum=0;
	cin>>n>>t;
	for(int i=0;i<n;i++){
		cin>>a[i].m>>a[i].v;
		
		a[i].p=a[i].v/a[i].m;
	}
	sort(a,a+n,cmp);
	//降序 
	for(int i=0;i<n;i++){
		if(t>=a[i].m) {
			t-=a[i].m;
			sum+=a[i].v;
			
		}
		
		else{
			sum+=a[i].p*t;
			break;
		}
	}
	//cout<<t<<endl;
	printf("%.2lf",sum);
	return 0;
} 
相关推荐
小O的算法实验室3 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法
Tbisnic4 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理
算法·自然语言处理·大模型·bert·transformer·注意力机制
Brilliantwxx4 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口
算法
空堂与归5 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式
算法·机器学习·kmeans·聚类
动词ing5 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习6 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
一只小小的芙厨6 小时前
基础数论总结
笔记·学习·算法
夜不会漫长7 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng8 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背9 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline