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

第七讲---贪心(上课)

在这里插入图片描述

1.股票买卖

在这里插入图片描述

在这里插入图片描述
一、贪心
在这里插入图片描述

在这里插入图片描述
考虑一种方案,在每次上升前一天购入股票,并在上升后的当天卖出的方案

if (w[i] > w[i - 1])res += w[i] - w[i - 1];

接下来证明该贪心思路得出的方案即是最优解
(1)证明贪心解 ≥ 最优解:
由于贪心解都是取区间长度为 1 的解,因此假设存在于最优解中的某个区间 [i,j] 的长度 >1

那么会出现一下三种情况:
在这里插入图片描述

对应三种情形:最优解选取的区间最终点位于上方、下方、相等。

对于情形一:显然 最优解 < 贪心解
对于情形二:显然 最优解 <贪心解
对于情形三:毫无疑问,这就是存在于贪心解中的情形,因此 贪心解 = 最优解
得证

(2)证明贪心解 ≤最优解:
这部分无需证明,因为贪心解即是合法解,所以他的方案必定大于等于最优解

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int n;
int w[N];int main() {scanf("%d", &n);for (int i = 1; i <= n; ++i) scanf("%d", &w[i]);int res = 0;for (int i = 2; i <= n + 1; ++i) {if (w[i] - w[i - 1] > 0) res += w[i] - w[i - 1];}printf("%d\n", res);return 0;
}

二、闫氏DP分析法
在这里插入图片描述
具体的状态机模型分析如下图:
在这里插入图片描述
一共只2有种状态:

1. 当前处于未持股状态0

对应可以进行的转换:
0->0 (不买入,继续观望,那么就什么都不发生)
0->1 (买入股票,那么收益就要减去当前市场的股票价格)

2. 当前处于持股状态1

对应可以进行的转换:
1->1 (不卖出,继续观望,那么就什么都不发生)
1->0 (卖出股票,那么收益就要加上当前市场的股票价格)

#include <iostream>
using namespace std;
const int N = 1e5 + 10, INF = 0x3f3f3f3f;
int n;
int w[N];
int f[N][2];int main() {scanf("%d", &n);for (int i = 1; i <= n; ++i) scanf("%d", &w[i]);f[0][1] = -INF;for (int i = 1; i <= n; ++i) {f[i][0] = max(f[i - 1][0], f[i - 1][1] + w[i]);f[i][1] = max(f[i - 1][1], f[i - 1][0] - w[i]);}printf("%d\n", f[n][0]);return 0;
}

2.货舱选址

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
int n;
int a[N];
int main () {scanf ("%d",&n);for (int i = 1;i <= n;i++) scanf ("%d",&a[i]);sort (a + 1,a + 1 + n);int ans = 0;for (int i = 1,j = n;i <= j;i++,j--) ans += a[j] - a[i];printf ("%d\n",ans);return 0;
}

3.糖果传递

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

第七讲---贪心(上课)

1.股票买卖 一、贪心 考虑一种方案&#xff0c;在每次上升的前一天购入股票&#xff0c;并在上升后的当天卖出的方案 if (w[i] > w[i - 1])res w[i] - w[i - 1];接下来证明该贪心思路得出的方案即是最优解。 &#xff08;1&#xff09;证明贪心解 ≥ 最优解&#xff1a; …...

计算机如何思考与图灵完备

图灵完备是针对一套数据操作规则而言的概念,数据操作规则可以是一门编程语言,也可以是计算机实现里面的指令集,比如C/C++是图图灵完备的,通用CPU也是图灵完备的,但是GPU却不一定是图灵完备的。说白了图灵完备定义了一套规则,当这套规则可以实现图灵迹模型里的全部功能时,…...

惠普LaserJet M1005 MFP报错b2

故障现象: 惠普LaserJet M1005 MFP开机后直接报b2错误; 检测维修: 故障大意是:机器的硬件可能出现点突变,此问题建议联系当地维修中心进行处理。...

网络协议(TCP/IP)

目录一、网络分层模型二、OSI模型三、网络传输原理四、TCP/IP1、TCP/IP 原理2、TCP 三次握手/四次挥手3、Http协议和TCP/IP的区别五、HTTP原理六、HTTPS原理七、CDN原理一、网络分层模型 互联网的本质就是一系列的网络协议&#xff0c;最早由ISO国际组织定义为7层网络参考模型…...

2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书

2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书2023河南省第二届职业技能大赛郑州市选拔赛“网络安全” 项目比赛样题任务书A模块基础设施设置/安全加固&#xff08;200分&#xff09;A-1&#xff1a;登录安全加固&#xff08;Windows, Linux&#…...

6、流程控制

目录一、if二、switch三、for四、break与continue五、goto与Label一、if if使用&#xff1a;逻辑表达式成立&#xff0c;就会执行{}里的内容&#xff1b;逻辑表达式不需要加() if 5 > 9 {fmt.Println("5>9") }if句子中允许包含1个(仅1个)分号&#xff1a;在分…...

Linux中最基本常见命令总结

❤❤&#x1f49b;&#x1f49b;&#x1f49a;&#x1f49a;&#x1f499;&#x1f499;&#x1f49c;&#x1f49c;您的认可是对我最大的帮助&#x1f49c;&#x1f49c;&#x1f499;&#x1f499;&#x1f49a;&#x1f49a;&#x1f49b;&#x1f49b;❤❤ &#x1f90e;&…...

Python学习-----模块2.0(常用模块之时间模块-->time)

目录 前言&#xff1a; time简介 导入模块 1.时间戳 2.时间元组 &#xff08;1&#xff09;把时间戳转换为元组形式 &#xff08;2&#xff09;元组转换为时间戳输出 &#xff08;3&#xff09;把元组转换为格式化时间 &#xff08;4&#xff09;把时间戳转换为格式化时间…...

XXL-JOB分布式任务调度框架(二)-策略详解

文章目录1.引言2.任务详解2.1.执行器2.2.基础配置3.路由策略(第一个)-案例4.路由策略(最后一个)-案例5.轮询策略-案例6.随机选取7.轮询选取8.一致性hash9.最不经常使用 (LFU)10.最近最久未使用&#xff08;LRU&#xff09;11.故障转移12.忙碌转移13.分片广播任务14.父子任务15.…...

JAVA练习54-最小栈

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-最小栈 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 2月18日练习内容…...

Redis-哨兵模式以及集群

在开始这部分内容之前需要先说一下复制功能&#xff0c;因为这是Redis实现主从数据同步的实现方式。复制功能如果存在两台服务器的话&#xff0c;我们可以使用redis的复制功能&#xff0c;让一台服务器去同步另一台服务器的数据。现在我启动了两台redis服务器&#xff0c;一个端…...

过滤器和监听器

1、过滤器Filter 作用是防止SQL注入、参数过滤、防止页面攻击、空参数矫正、Token校验、Session验证、点击率统计等等&#xff1b; 使用Filter的步骤 新建类&#xff0c;实现Filter抽象类&#xff1b;重写init、doFilter、destroy方法&#xff1b;在SpringBoot入口中添加注解…...

Acwing 第 91 场周赛

Powered by:NEFU AB-IN B站直播录像&#xff01; Link 文章目录Acwing 第 91 场周赛A AcWing 4861. 构造数列题意思路代码B AcWing 4862. 浇花题意思路代码C AcWing 4863. 构造新矩阵题意思路代码Acwing 第 91 场周赛 A AcWing 4861. 构造数列 题意 略 思路 将每个数的每一位…...

JavaEE|套接字编程之UDP数据报

文章目录一、DatagramSocket API构造方法常用方法二、DatagramPacket API构造方法常用方法E1:回显服务器的实现E2:带有业务逻辑的请求发送一、DatagramSocket API 在操作系统中&#xff0c;把socket对象当成了一个文件处理。等价于是文件描述符表上的一项。 普通的文件&#xf…...

如何使用Python创建一个自定义视频播放器

目录 1、安装vlc的64位版本。 2、安装python的vlc模块。 3、编写如下代码&#xff0c;包含了播放&#xff0c;暂停&#xff0c;停止、音量控制功能。 4、来看一看运行结果。 5、如果遇到播放不了的问题&#xff0c;解决方式如下&#xff1a; 这个例子使用VLC作为视频播放器…...

Elasticsearch进行优化-使用索引拆分(Split)和索引收缩(shrink )

一、索引拆分和收缩的场景 在Elasticsearch集群部署的初期我们可能评估不到位&#xff0c;导致分配的主分片数量太少&#xff0c;单分片的数据量太大&#xff0c;导致搜索时性能下降&#xff0c;这时我们可以使用Elasticsearch提供的Split功能对当前的分片进行拆分&#xff0c…...

数论 —— 高斯记号(Gauss mark)

定义 数学上&#xff0c;高斯记号&#xff08;Gauss mark&#xff09;是指对取整符号和取小符号的统称&#xff0c;用于数论等领域。 设 x∈Rx \in \textbf{R}x∈R&#xff0c;用 [x][x][x] 表示不超过 xxx 的最大整数。也可记作 [x][x][x]。设 x∈Rx \in \textbf{R}x∈R&…...

【随笔】程序员眼中的 CPU,“没有灵魂的躯体”

引言 先引用一段比较有意思的论述&#xff1a; 现实中每个人是由两部分构成&#xff0c;灵魂和躯体&#xff0c;灵魂依附于躯体游走于世间&#xff0c;现实中我们面对的每个人其实面对的是其灵魂而非肉体&#xff0c;肉体不过是表象而已。 灵魂本性乃一恶物&#xff0c;寄生于…...

算法的时间复杂度

算法在编写成可执行程序后&#xff0c;运行时需要消耗时间资源和空间&#xff08;内存&#xff09;资源&#xff0c;因此衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的。 时间复杂度主要衡量一个算法运行的快慢&#xff0c;而空间复杂度主要衡量一个算法运…...

华为OD机试 - 叠放书籍(Python) | 机试题算法思路 【2023】

最近更新的博客 华为OD机试 - 寻找路径 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - 五键键盘 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - IPv4 地址转换成整数 | 备考思路,刷题要点,答疑 【新解法】 华为OD机试 - 对称美学 | 备考思路,刷题要点,答疑 …...

进程间通信(重点)

概念 进程是一个独立的资源分配单元&#xff0c;不同进程之间的资源是独立的进程并非孤立的&#xff0c;不同进程需要进行信息的交互和状态的传递&#xff0c;因此需要进程之间的通信【IPC: Inter processes communication】 如qq聊天&#xff0c;qq在每个人的手机上是独立的…...

Reverse入门[不断记录]

文章目录前言一、[SWPUCTF 2021 新生赛]re1二、[SWPUCTF 2021 新生赛]re2三、[GFCTF 2021]wordy[花指令]四、[NSSRound#3 Team]jump_by_jump[花指令]五、[NSSRound#3 Team]jump_by_jump_revenge[花指令]前言 心血来潮&#xff0c;想接触点Reverse&#xff0c;感受下Reverse&am…...

如何实现外网访问内网ip?公网端口映射或内网映射来解决

本地搭建服务器应用&#xff0c;在局域网内可以访问&#xff0c;但在外网不能访问。如何实现外网访问内网ip&#xff1f;主要有两种方案&#xff1a;路由器端口映射和快解析内网映射。根据自己本地网络环境&#xff0c;结合是否有公网IP&#xff0c;是否有路由权限&#xff0c;…...

[acwing周赛复盘] 第 91 场周赛20230218

[acwing周赛复盘] 第 91 场周赛20230218 一、本周周赛总结二、 4861. 构造数列1. 题目描述2. 思路分析3. 代码实现三、4862. 浇花1. 题目描述2. 思路分析3. 代码实现四、4863. 构造新矩阵1. 题目描述2. 思路分析3. 代码实现六、参考链接一、本周周赛总结 这周挺难的。T1 贪心分…...

蓝桥12届

小蓝准备用 256MB 的内存空间开一个数组&#xff0c;数组的每个元素都是 32 位 二进制整数&#xff0c;如果不考虑程序占用的空间和维护内存需要的辅助空间&#xff0c;请问 256MB 的空间可以存储多少个 32 位二进制整数&#xff1f;1MB 1024KB 1KB 1024字节(byte) 1字节 8位…...

华为OD机试 - 斗地主(JS)

斗地主 题目 斗地主起源于湖北十堰房县, 据传是一位叫吴修全的年轻人根据当地流行的扑克玩法“跑得快”改编的, 如今已风靡整个中国,并流行于互联网上 牌型: 单顺,又称顺子,最少5张牌,最多12张牌(3...A),不能有2, 也不能有大小王,不计花色 例如:3-4-5-7-8,7-8-9-1…...

【MyBatis】| MyBatis的注解式开发

目录 一&#xff1a;MyBatis的注解式开发 1. Insert注解 2. Delete注解 3. Update注解 4. Select注解 5. Results注解 一&#xff1a;MyBatis的注解式开发 MyBatis中也提供了注解式开发⽅式&#xff0c;采⽤注解可以减少Sql映射⽂件的配置。 当然&#xff0c;使⽤注…...

python自制PDF转换.PNG格式图片(按每页生成图片完整源码)小工具!

使用PyQt5应用程序制作PDF转换成图片的小工具&#xff0c;可以导入PDF文档后一键生成对应的PNG图片。 PDF图片转换小工具使用的中间件&#xff1a; python版本&#xff1a;3.6.8 UI应用版本&#xff1a;PyQt5 PDF文件操作非标准库&#xff1a;PyPDF2 PNG图片生成库&#xff1…...

Go 数组和切片反思

切片的底层数据结构是数组&#xff0c;所以&#xff0c;切片是基于数组的上层封装&#xff0c;使用数组的场景&#xff0c;也完全可以使用切片。 类型比较 我看到 go 1.17 有对切片和数组转换的优化&#xff0c;禁不住纳闷&#xff0c;有什么场景是必须数组来完成的呢&#x…...

win10电脑性能优化设置

win10电脑性能优化设置 目录win10电脑性能优化设置1.桌面图标显示2.wini2.1 “系统”2.1.1专注助手 关2.1.2 电源和睡眠 设置为从不2.1.3 存储 开2.2 网络和Internet2.3 个性化2.4 应用2.5 账户2.6 游戏2.7 隐私墨迹书写和键入个性化&#xff1a;关活动历史记录&#xff1a;全部…...

帷客分享 wordpress/seo查询5118

以下为米尔科技工程师在使用DS-5过程中总结的经验步骤&#xff0c;一个简单的实用HelloWorld工程。虽然工程很简单&#xff0c;但是对于刚入门DS-5来说&#xff0c;可以起到一个指导的作用。如下&#xff1a;步骤&#xff1a;1、从开始菜单启动DS-5&#xff0c;可以看到DS-5的欢…...

手机网站如何建站/网站优化公司

文章目录软件环境说明1. 什么是MyBatis1.1 Mybatis的资料1.2 持久层&#xff1a;完成持久化工作的代码块——dao层 【(Data Access Object) 数据访问对象2. 为什么需要Mybatis软件环境说明 jdk 8 、MySQL 5.7.19、maven-3.6.1、 IDEA 1. 什么是MyBatis MyBatis 是一款优秀的持…...

专门做音效的网站/冯站长之家官网

CP.200: Use volatile only to talk to non-C memoryCP.200:使用volatile只能表明该变量是非C内存Reason(原因)volatile is used to refer to objects that are shared with "non-C" code or hardware that does not follow the C memory model.volatile用于表明参照…...

做vi的图有网站吗/seo一个月赚多少钱

介绍 牛云资源变现专为内容/资源下载场景设计&#xff0c;一站式解决内容带货、流量、资源变现难题&#xff0c;uniCloud云开发无需购买服务器和域名&#xff0c;助力每一位内容创业者。 传统小程序开通流量主要求小程序累计独立访客&#xff08;UV&#xff09;1000以上,本项…...

怎么做网站的导航/百度网站收录查询

一、联合查询在两种情况下可能用到&#xff1a;1、想要的结果在一条语句中会引起逻辑冲突&#xff0c;只能放在两条语句中是要使用联合查询2、一张表的数据量非常大时&#xff0c;会分隔成多张表存储&#xff0c;要查询时也要用到联合查询使用时要注意&#xff1a;1&#xff0c…...

山西城乡建设网站/电子商务与网络营销题库

二叉树的中序遍历 题目描述&#xff1a; 给定一个二叉树的根节点 root &#xff0c;返回它的 中序 遍历。提示&#xff1a;树中节点数目在范围 [0, 100] 内-100 < Node.val < 100题目链接 首先需要理解什么是中序遍历&#xff0c;中序遍历就是按照"左-根-右"的…...