蓝桥杯备考:贪心算法简介

ops/2025/2/13 22:50:19/

算法>贪心算法就是企图用局部最优的策略找出全局最优步骤就是1,把解决问题的过程分成若干步。2,每一步都选择当前看起来最优的解法 。 3,希望得到全局最优的结果

比较经典的例题一个就是

找零问题

钞票种类[20,10,5,1]用最小的张数找零46的时候,先把最大的20的找完,然后找10的,再找5的,最后再找1的直到不能再找,过程就是 46:找零20 ---》 26:找零20  -----》 6  :找零5 -----》 1 :找零1 -----》 0

另一个就是最小路径和问题

我们如果用贪心的话,一定是先从下走,因为2是比4小的,然后再从右走,加起来就是1+2+1+10+1=15,但是这个贪心策略一定对吗?不一定,先从右走的话路径和是更小的

有时候啊,局部最优是不等同于全局最优的,所以我们要对贪心策略进行证明

比如我们证明一下找零问题的正确,找零问题有个性质就是 设20的张数为A,10的是B,5的是C,1的是D,B一定≤1,如果大于1的话可以用20来替代,B=2的时候可以换成一张20的,B=3的时候可以换成一张20的和一张10的,C小于等于1,D小于等于4 如果C大于1可以用10来替代,如果D大于5可以用5来替代

好的,设贪心策略的结果是  a b c d  正确是A B C D

一定可以得出a是大于等于A的,因为贪心策略是取到不能再取,如果a大于A的时候,没有用到A的钱数一定是大于20的,然而根据我们正确策略的性质,没有用到A的剩余钱数应该是<=10+5+4=19的,所以a不会大于A,a是等于A的,其他证明同理

贪心策略是很难想到的,我们前期要积极的汲取经验

在平常学习的时候,我们尽可能证明一下贪心策略的正确性,这有利于培养我们严谨的思维,但是我们在比赛的时候,如果很多边界情况能过了,我们就可以写代码了,在赛完再严谨的证明一下


http://www.ppmy.cn/ops/158159.html

相关文章

Qt 控件整理 —— 按钮类

一、PushButton 1. 介绍 在Qt中最常见的就是按钮&#xff0c;它的继承关系如下&#xff1a; 2. 常用属性 3. 例子 我们之前写过一个例子&#xff0c;根据上下左右的按钮去操控一个按钮&#xff0c;当时只是做了一些比较粗糙的去演示信号和槽是这么连接的&#xff0c;这次我们…

位图与位运算的深度联系:从图像处理到高效数据结构的C++实现与优化

在学习优选算法课程的时候&#xff0c;博主学习位运算了解到位运算的这个概念&#xff0c;之前没有接触过&#xff0c;就查找了相关的资料&#xff0c;丰富一下自身&#xff0c;当作课外知识来了解一下。 位图&#xff08;Bitmap&#xff09;&#xff1a; 在计算机科学中有两种…

DeepSeek和ChatGPT的对比

最近DeepSeek大放异彩&#xff0c;两者之间有什么差异呢&#xff1f;根据了解到的信息&#xff0c;简单做了一个对比。 DeepSeek 和 ChatGPT 是两种不同的自然语言处理&#xff08;NLP&#xff09;模型架构&#xff0c;尽管它们都基于 Transformer 架构&#xff0c;但在设计目标…

Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)

一、网络 早期的计算机程序都是在本机上运行的&#xff0c;数据存储和处理都在同一台机器上完成。随着技术的发展&#xff0c;人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用&#xff0c;其运行环 境仅限于个人计算机内部。这种设置虽然…

5G无线网络技术深度解析

5G无线网络技术深度解析 一、5G物理层核心技术 灵活参数集&#xff08;Numerology&#xff09; 子载波间隔&#xff08;SCS&#xff09;&#xff1a;5G NR定义了5种子载波间隔&#xff08;15/30/60/120/240 kHz&#xff09;&#xff0c;SCS与频段强相关&#xff1a; FR1&#x…

go 语言设置 商城首页

1&#xff1a;前端传递的数据结构: {"page_type": 10,"page_name": "商城首页","page_data": {"page": {"params": {"name": "商城首页","title": "萤火商城2.0","…

ubuntu20.04+RTX4060Ti大模型环境安装

装显卡驱动 这里是重点&#xff0c;因为我是跑深度学习的&#xff0c;要用CUDA&#xff0c;所以必须得装官方的驱动&#xff0c;Ubuntu的附件驱动可能不太行. 进入官网https://www.nvidia.cn/geforce/drivers/&#xff0c;选择类型&#xff0c;最新版本下载。 挨个运行&#…

HTML之JavaScript对象声明

HTML之JavaScript对象声明 常用&#xff1a;方式1&#xff1a;new Object() 创建一个空对象方式2&#xff1a;{属性名:属性值,属性名:属性值,...函数名:function(){}} 创建一个对象<!DOCTYPE html> <html lang"en"> <head><meta charset&quo…