洛谷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;
} 
相关推荐
DuHz8 分钟前
论文解读:用于数据分析的极值点对称模态分解方法 (Extreme-point Symmetric Mode Decomposition,ESMD)
论文阅读·算法·信息与通信·信号处理
HZZD_HZZD28 分钟前
用电负荷聚类分析实战:基于`scikit-learn`的`K-Means`与`DBSCAN`双算法对比、`PCA`降维可视化与智能电表负荷画像全流程
算法·scikit-learn·kmeans
MIngYaaa52041 分钟前
2026暑期牛客多校1 2026-7-17
数据结构·算法
wabs66641 分钟前
关于图论【卡码网107.寻找存在的路线的思考】
数据结构·算法·图论
半兽先生1 小时前
大模型技术开发与应用——4.大模型提示词工程实战
人工智能·算法
wuminyu1 小时前
JUC组件逐层剥离与深度剖析
java·linux·c语言·jvm·c++·算法
hhzz2 小时前
机器学习-算法模型系列文章:07-SVM 一巴掌拍出来的超平面:SVM核函数选错,再干净的数据也救不了你
算法·机器学习·支持向量机
geovindu2 小时前
java: Gale-Shapley Algorithm
java·开发语言·后端·算法
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-34 通讯录的录入与显示(C语言实现)
c语言·开发语言·数据结构·算法
zander2582 小时前
LeetCode 79. 单词搜索
算法·深度优先