洛谷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;
} 
相关推荐
sali-tec18 分钟前
C# 基于halcon的视觉工作流-章58-输出点云图
开发语言·人工智能·算法·计算机视觉·c#
_OP_CHEN19 分钟前
算法基础篇:(四)基础算法之前缀和
c++·算法·前缀和·蓝桥杯·acm·icpc·算法竞赛
_OP_CHEN23 分钟前
算法基础篇:(五)基础算法之差分——以“空间”换“时间”
c++·算法·acm·icpc·算法竞赛·差分算法·差分与前缀和
DuHz24 分钟前
霍夫变换和基于时频脊线的汽车FMCW雷达干扰抑制——论文阅读
论文阅读·物联网·算法·汽车·信息与通信·毫米波雷达
秋风&萧瑟29 分钟前
【C++】智能指针介绍
java·c++·算法
QiZhang | UESTC31 分钟前
JAVA算法练习题day67
java·python·学习·算法·leetcode
陌路201 小时前
S15 排序算法--归并排序
数据结构·算法·排序算法
智者知已应修善业1 小时前
【c# 想一句话把 List<List<string>>的元素合并成List<string>】2023-2-9
经验分享·笔记·算法·c#·list
B站_计算机毕业设计之家1 小时前
深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
python·深度学习·神经网络·算法·yolo·机器学习·cnn
星释2 小时前
Rust 练习册 :Luhn Trait与Trait实现
网络·算法·rust