当前位置: 首页 > news >正文

贪心算法的应用

考虑最大利润
输入:种类数、需求量、各种类的库存量、各种类的总价
输出:最大利润

#include <iostream>
#include <algorithm>//调用sort排序
using namespace std;
struct mooncake{double store;double price;double tprice;
}cake[1000];
bool cmp(mooncake a,mooncake b)
{
return a.price>b.price;
}
int main(){int kinds;double needs,profits=0;cin>>kinds>>needs;for(int i=0;i<kinds;i++)cin>>cake[i].store;for(int i=0;i<kinds;i++){cin>>cake[i].tprice;cake[i].price=cake[i].tprice/cake[i].store;}sort(cake,cake+kinds,cmp);//由大到小排序for(int i=0;i<kinds;i++){if(cake[i].store<=needs)//供应充足{needs-=cake[i].store;//更新需求量profits=cake[i].tprice;}else{//供应不足:一定要手动结束,否则会继续循环profits+=cake[i].price*needs;//由单价一个个算出 break;//手动结束}}cout<<profits;return 0;
}

考虑最小数
输入:0-9位数的次数
输出:由该数所组成的最小数

#include <iostream>
using namespace std;
int main(){int count[10];//分别记录0-9的个数for(int i=0;i<10;i++)cin>>count[i];for(int i=1;i<10;i++)//先确定首位if(count[i]>0){cout<<i;count[i]--;break;}//直接由0-9一个个输出for(int i=0;i<10;i++)//循环各个位数for(int j=0;j<count[i];j++)//判断每个位数的次数 cout<<i;return 0;
}

统计不相交的区间个数-区间贪心
输入:区间个数、各区间的左右端点
输出:不相交的区间个数

#include <iostream>
#include <algorithm>//sort方法
using namespace std;
struct interval{//定义区间结构体int left;int right;
}inter[100];
bool cmp(interval a,interval b){if(a.left!=b.left) return a.left>b.left;//左端点由大到小排序else return a.right<b.right;//右端点由小到大排序
}
int main(){int n;int count=1;//记录不相交的区间个数 cin>>n;for(int i=0;i<n;i++)cin>>inter[i].left>>inter[i].right;sort(inter,inter+n,cmp);int lastval=inter[0].left;//存最大的:最右端的左端点for(int i=1;i<n;i++)if(inter[i].right<=lastval)//右端点小于左端点,说明这两个区间不相交{lastval=inter[i].left;//更新左端点count++;}else count--;cout<<count<<endl;return 0;
}

贪心算法:考虑当前情况下局部最优的策略,从而使全局达到最优的方法

http://www.lryc.cn/news/296759.html

相关文章:

  • CentOS基于volatility2的内存取证实验
  • HLS 三角函数报错:undefined reference to ‘cordic_apfixed::circ_table_arctan_128‘
  • 【汇编】简单的linux汇编语言程序
  • Fink CDC数据同步(四)Mysql数据同步到Kafka
  • Adb offline疑难杂症解决方案大全记录
  • 详述FlinkSql Join操作
  • Ajax+JSON学习二
  • STM32单片机的基本原理与应用(六)
  • 《MySQL 简易速速上手小册》第4章:数据安全性管理(2024 最新版)
  • VUE学习之路——列表渲染
  • CentOS 安装 redis 7.2
  • 运维自动化bingo前端
  • Project2013下载安装教程,保姆级教程,附安装包和工具
  • 【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总
  • Mac电脑如何通过终端隐藏应用程序?
  • linker list
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • 【开源】基于JAVA+Vue+SpringBoot的数据可视化的智慧河南大屏
  • 页面单跳转换率统计案例分析
  • 眸思MouSi:“听见世界” — 用多模态大模型点亮盲人生活
  • 电商小程序05用户注册
  • 什么是UI设计?
  • React 实现表单组件
  • PlantUML绘制UML图教程
  • 自学Python第二十二天- Django框架(六) django的实用插件:cron、APScheduler
  • 医院挂号预约|医院挂号预约小程序|基于微信小程序的医院挂号预约系统设计与实现(源码+数据库+文档)
  • 网络选择流程分析(首选网络类型切换流程)
  • AutoSAR(基础入门篇)6.1-Vector的汽车电子开发工具链简介
  • TI的电量计驱动在卸载时导致Linux卡死
  • 使用yolo训练自己的模型