数据结构算法-贪心算法

引言

贪心:人只要有 “需求“ ,都会有有点“贪“, 这种“贪“是一种选择,或者“”取舍“
RTS(即时战略)游戏: 帝国时代里 首先确保拥有足够的人口 足够的粮食,足够的战略资源 足够的兵力才能发起一次“围剿”
当然 也可以边战斗 边收集资源 升级时代等等 你会发现,但选择升级时代 时,资源种类多了一些 兵种也会有一些变化 (好像在说废话…)当然只要能快一点 击败敌人 这样融合军事,收集资源 城建 模拟货币交易 的游戏 才是真正的玩 脑子游戏 (这是 个人定义 )
你能看出来哪里 贪心的选择?
人口;多一些劳动力
收集资源 人口一多 可以压榨(军阀模拟器?)哈哈,人要想为自己而活 是不能做到的 当然(美利坚)除外 恨不得自己…
为集体人民而活 短期来看没一点成果,但长期 看到会有点收获
这好比现实生活 短期投资 没一点回报,但只要时间充足 一定会一些回报
足够的战略资源 : 粮食中的大豆(帝国时代没有大豆) 作为战略资源 确定有点变态 那头恶臭味的鹰 引起了他的注意
兔子团购鹰豆,鹰反而说一些:由于天气xxx 推迟 结果买的是虚价 卖的 确是阴间价 这就是那鹰的作风 看不起兔子
只能说“从此我已八嘎呀路“这位原神玩家请你出去 不要再这里闹!

足够的兵力 :这不就是必备的 ,

升级时代: 满足一定的条件: 升级时代好处在于使用当前最新的科技 和最新的军种
食物 满足800 ,木材 1000 黄金(货币)500 统统满足了 …
随着时代的更变 若集体不前进 就会挨打的

开放世界类型也是一样的道理
以原神为例 当你选择了某个任务 必须做完为止中间不能跳过,才可以接下一个任务 当然原神是非常自由的 想打啥就打啥 缺啥补充啥.这样 才有乐趣这是所谓的动态平衡 原神有一个点 叫谋权篡位 ,神突然死 去,当人们面对自己危在旦夕璃月需要变成人的政权。也是人主导 并且化解这场危机当然也非常的末代皇帝 味道 钟离表示:我累了 守护你们这么多年了 我就得意使绊子 “我特意假死 看看情况没想到却 … 好吧,人毕竟是未来 到是便宜了,胡桃”…我选择以人身份活着 那也不错 派蒙:一个社会“废人” 调侃 确实正确 好在有往生堂胡堂主 做客卿 …

贪心算法核心思想

贪心:谋取自身的利益,做出不能改变想法,只能一直做下去直到找到 ,或者没找到

定义一种选择
这种选择可能能找到问题的解 (局部最优解)若不能找到问题的解(局部最优解)返回错误值 ,能找到问题的解(局部最优解)直接返回
这种选择找不到全局最优解,

比方:每次只看播放量 很高的视频作品 ,点赞量 很高 即使再拉也就短暂, 而不是长期
比如说:某一些电视剧角色看起来,风风光光,背后暗箱操作,结果为自己罪行买单(你们肯定知道我要说的是谁:高启强)
所以但凡人都会有私心想怎么搞最大化 以及风险小的利益

不考虑长久 只考虑当前如何最优

数据结构 图: 每次选择最近的顶点 作为深度优先遍历

贪心算法实现思路

钱币找零 大家非常不陌生,但移动支付打破了格局 让小偷都 只敢偷手机了 可得知信息安全重要性,
但钱包可能在一些老人可是还在用纸币,让我们回忆回忆如何通过纸币来找零钱

我们先不管五毛 只 找整
首先这些面值为 1块钱 2块钱 5块钱 10块钱 20块钱 50块钱 100块钱
但只是面值 有多少张 才是硬道理 总不能没有吧 那怎么发行 那怎么流通 ?
所以这个纸币的张数这就来 首先说明一下 银行怎么做我们就怎么做 交易限制 在5wRMB 每日
但我们比还有狠 直接 1块钱(20张) 2块钱(6张) 5块钱(3张) 10块钱 (6张) 20块钱(2张) 50块钱(3张) 100块钱 (5张)一共是807元 倘若给我找600块 若是从1块开始找 效率低下 你想想谁会用这种方法! 很明显最大 开始

在这里插入图片描述

贪心应用算法专区

#include<iostream>  
using namespace std;  // 定义一个常量N为7,表示纸币面额的数量  
const int N = 7;  // 定义一个数组paperMoney,存储纸币的面额  
const int  paperMoney[N] = { 1,2,5,10,20,50,100 };  
// 定义一个数组paperMoneyCount,存储每种面额纸币的数量  
const int paperMoneyCount[N] = { 10,2,3,1,2,3,5 };  // 定义一个函数change,输入是需要找零的金额,输出是需要多少张纸币  
// 这个函数用于计算找零所需的纸币数量  
int change(int Money) {  int num = 0; // 初始化纸币数量为0  for (int i = N - 1; i >= 0; i--){ // 从大到小遍历纸币面额  int currentPaperMoneyCounts =  Money / paperMoney[i] ; // 计算需要多少张当前面额的纸币  int PaperMoneyCounts = currentPaperMoneyCounts < paperMoneyCount[i] ? currentPaperMoneyCounts : paperMoneyCount[i]; // 如果当前面额的纸币数量不足,则使用全部数量  // 输出需要多少张当前面额的纸币  cout << "需要" << paperMoney[i] << "面值纸币" << "兑换 " << PaperMoneyCounts <<" 张" << endl;  Money -= PaperMoneyCounts* paperMoney[i]; // 从需要找零的金额中减去已经使用的当前面额纸币的总价值  num += PaperMoneyCounts; // 增加已经使用的纸币数量  if (Money<=0){ // 如果已经没有需要找零的金额,跳出循环  break;  }  }  if (Money>0){ // 如果最后还有需要找零的金额,说明无法找零,返回-1  num = -1;  }  return  num; // 返回需要的纸币数量或者-1(无法找零)  
}  // 主函数,程序的入口点  
int main(void) {  int Money; // 定义一个变量存储需要找零的金额  cout << "请输入需要找零的纸币:"; cin >> Money; const int ret = change(Money); // 调用change函数计算需要的纸币数量if (cin&&ret!=-1){ // 如果用户输入成功且没有无法找零的情况,输出需要的纸币数量  cout <<"需要" << ret << "张纸币才能找零" << endl;  }  else { cout << "找不开!" << endl;  }  return 0; 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214939.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity RenderFeature架构分析

自定义RenderFeature接口流程 URP内部ScriptableRenderPass分析 public、protected属性 renderPassEvent &#xff1a;渲染事件发生的时刻colorAttachments &#xff1a;渲染的颜色纹理列表 m_ColorAttachmentscolorAttachment &#xff1a;m_ColorAttachments[0];depthAttac…

希宝猫罐头怎么样?专业人士告诉你什么牌子的猫罐头好

而作为一个开猫咖5年的老板&#xff0c;对于猫咪吃的健康我一直很重视&#xff0c;毕竟健康的猫咪是决定我店铺生意红火的重要原因。我有必要给大家分享一下这些年我喂养猫罐头的经验&#xff0c;并推荐我觉得可以的猫罐头。那么希宝猫罐头表现怎么样呢&#xff1f; 希宝猫罐头…

Python开源项目之人工智能老照片修复算法学习

文章目录 前言项目环境搭建conda虚拟环境创建激活环境Pytorch安装Synchronized-BatchNorm-PyTorch repository安装Global目录Synchronized-BatchNorm-PyTorch项目部署检测预处理模型下载下载脸部增强模型文件下载依赖完整部署后项目结构 项目使用验证一下总结关于Python技术储备…

Android Tombstone 与Debuggerd 原理浅谈

一、前言 Android系统类问题主要有stability、performance、power、security。Android集成一个守护进程tombstoned是android平台的一个守护进程&#xff0c;它注册成3个socket服务端&#xff0c;客户端封装在crash_dump和debuggerd_client。 crash_dump用于跟踪定位C crash&am…

万宾科技可燃气体监测仪的功能有哪些?

随着城市人口的持续增长和智慧城市不断发展&#xff0c;燃气作为一种重要的能源供应方式&#xff0c;已经广泛地应用于居民生活和工业生产的各个领域。然而燃气泄漏和安全事故的风险也随之增加&#xff0c;对城市的安全和社会的稳定构成了潜在的威胁。我国燃气管道安全事故的频…

mac 修改 hosts 文件

打开 hosts 所在文件夹 command shift G 快捷键 输入&#xff1a;“/private/etc/hosts” 后回车 如下所示 进入 hosts 文件所在位置&#xff0c;找到 hosts 文件&#xff0c;双击打开 修改 hosts 文件 将所需要的配置信息追加到hosts 文件中&#xff0c;或者修改需要改…

智慧楼宇可视化视频综合管理系统,助力楼宇高效安全运行

随着互联网技术的进步和发展&#xff0c;智能化的楼宇建设也逐步成为人们选择办公场所是否方便的一个重要衡量因素。在智能化楼宇中&#xff0c;安全管理也是重要的一个模块。得益于互联网新兴技术的进步&#xff0c;安防视频监控技术也得到了快速发展并应用在楼宇的安全管理中…

burp抓取雷电模拟器的数据包

文章目录 一、从burp中导出证书二、雷电模拟器的相关设置三、将burp的证书添加到模拟器的系统证书下四、安装ProxyDroid 所需软件 雷电模拟器版本&#xff1a;4.0.83Burp Suite Community Edition v2023.10.3.6ProxyDroid 起因&#xff1a;常规方法&#xff08;wifi处添加代理…

满满干货!搭建智能视频监控系统如何挑选前端设备?

在此前的文章中&#xff0c;小编也和大家讨论过如何选择适合场景需求又性价比高的摄像头。除了摄像头以外&#xff0c;智能监控系统的组成也少不了前端设备&#xff0c;今天就给大家介绍一下几大前端设备的区别与应用场景吧。 在智能视频监控中&#xff0c;前端设备一般分为四类…

C语言众数问题(ZZULIOJ1201:众数问题)

题目描述 给定含有n个元素的多重集合S&#xff0c;每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 例如&#xff0c;S{1&#xff0c;2&#xff0c;2&#xff0c;2&#xff0c;3&#xff0c;5}。多重集S的众数是2&#xff0c;其重数为3。 编程任务…

保姆级连接FusionInsight MRS kerberos Hive

数新网络&#xff0c;让每个人享受数据的价值https://xie.infoq.cn/link?targethttps%3A%2F%2Fwww.datacyber.com%2F 概述 本文将介绍在华为云 FusionInsight MRS&#xff08;Managed Relational Service&#xff09;的Kerberos环境中&#xff0c;如何使用Java和DBeaver实现远…

深眸科技聚焦AI机器视觉检测,驱动3C电子行业集成创新实现新需求

随着消费的升级及国家政策的助推&#xff0c;国内3C电子市场不断扩大&#xff0c;行业实现高速发展。近年来&#xff0c;3C电子产品持续迭代&#xff0c;生产工艺也逐渐复杂化&#xff0c;相关生产线定位组装、零部件检测、整机产品检测等环节&#xff0c;亟需使用具备较强适应…