【算法提高:动态规划】1.4 状态机模型 TODO
文章目录
- 例题列表
- 1049. 大盗阿福(其实就是打家劫舍)
- 1057. 股票买卖 IV(k笔交易)
- 1058. 股票买卖 V(冷冻期)
- 1052. 设计密码⭐⭐⭐🚹🚹🚹(TODO)
- 1053. 修复DNA🚹🚹🚹🚹🚹(TODO)
例题列表
1049. 大盗阿福(其实就是打家劫舍)
https://www.acwing.com/activity/content/problem/content/1287/

就是 打家劫舍 那道题。
对当前的房间选择 抢 或者 不抢。
import java.io.BufferedInputStream;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sin = new Scanner(new BufferedInputStream(System.in));int t = sin.nextInt();while (t-- != 0) {int n = sin.nextInt();int second = 0, pre = sin.nextInt();for (int i = 1; i < n; ++i) {int temp = pre;pre = Math.max(pre, second + sin.nextInt());second = temp;}System.out.println(pre);}}
}
1057. 股票买卖 IV(k笔交易)
https://www.acwing.com/problem/content/1059/

dp 数组多开一维表示第几笔交易就好了。
import java.io.BufferedInputStream;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sin = new Scanner(new BufferedInputStream(System.in));int n = sin.nextInt(), k = sin.nextInt();int[] prices = new int[n];for (int i = 0; i < n; ++i) prices[i] = sin.nextInt();int[][] buy = new int[n][k], sell = new int[n][k];Arrays.fill(buy[0], -prices[0]);for (int i = 1; i < n; ++i) {buy[i][0] = Math.max(buy[i - 1][0], -prices[i]);sell[i][0] = Math.max(sell[i - 1][0], buy[i - 1][0] + prices[i]);for (int j = 1; j < k; ++j) {buy[i][j] = Math.max(buy[i - 1][j], sell[i - 1][j - 1] - prices[i]);sell[i][j] = Math.max(sell[i - 1][j], buy[i - 1][j] + prices[i]);}}System.out.println(sell[n - 1][k - 1]);}
}
1058. 股票买卖 V(冷冻期)
https://www.acwing.com/problem/content/1060/

限制 buy[i] 只能从 sell[i - 2] 转移过来就好了。
import java.io.BufferedInputStream;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sin = new Scanner(new BufferedInputStream(System.in));int n = sin.nextInt();int[] buy = new int[n], sell = new int[n], prices = new int[n];for (int i = 0; i < n; ++i) prices[i] = sin.nextInt();buy[0] = -prices[0];buy[1] = Math.max(buy[0], -prices[1]);sell[1] = Math.max(sell[0], buy[0] + prices[1]);for (int i = 2; i < n; ++i) {buy[i] = Math.max(sell[i - 2] - prices[i], buy[i - 1]);sell[i] = Math.max(buy[i - 1] + prices[i], sell[i - 1]);}System.out.println(sell[n - 1]);}
}
1052. 设计密码⭐⭐⭐🚹🚹🚹(TODO)
https://www.acwing.com/activity/content/problem/content/1290/

|T| + 1 个状态自动机。
在这里插入代码片
1053. 修复DNA🚹🚹🚹🚹🚹(TODO)
https://www.acwing.com/activity/content/problem/content/1291/

在这里插入代码片
相关文章:
【算法提高:动态规划】1.4 状态机模型 TODO
文章目录 例题列表1049. 大盗阿福(其实就是打家劫舍)1057. 股票买卖 IV(k笔交易)1058. 股票买卖 V(冷冻期)1052. 设计密码⭐⭐⭐🚹🚹🚹(TODO)1053…...
ip link add 命令
ip link add veth0 type veth peer name veth1 这条命令主要用于在 Linux 操作系统中创建一个新的 veth(虚拟以太网) 对,这是一种虚拟网络设备,用于在 Linux 命名空间(namespaces)之间创建网络连接。此命令将创建两个设备…...
unity事件处理
方法调用 //发送事件 【发送事件码,发送消息内容】 EventCenterUtil.Broadcast(EventCenterUtil.EventType.Joystick, ui);//监听无参事件 EventCenterUtil.AddListener(EventCenterUtil.EventType.Joystick, show); public void show(){}//发送事件 有参事件 Eve…...
《ChatGPT原理最佳解释,从根上理解ChatGPT》
【热点】 2022年11月30日,OpenAI发布ChatGPT(全名:Chat Generative Pre-trained Transformer), 即聊天机器人程序 ,开启AIGC的研究热潮。 ChatGPT是人工智能技术驱动的自然语言处理工具,它能够…...
大数据Flink(五十):流式计算简介
文章目录 流式计算简介 一、数据的时效性 二、流式计算和批量计算...
13-4_Qt 5.9 C++开发指南_基于QWaitCondition 的线程同步_Wait
在多线程的程序中,多个线程之间的同步实际上就是它们之间的协调问题。例如上一小节讲到的3个线程的例子中,假设 threadDAQ 写满一个缓冲区之后,threadShow 和 threadSaveFile 才能对缓冲区进行读操作。前面采用的互斥量和基于 OReadWriteLock…...
STM32(HAL)多串口进行重定向(printf函数发送数据)
目录 1、简介 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 串口外设配置 2.3 项目生成 3、KEIL端程序整合 4、效果测试 1、简介 在HAL库中,常用的printf函数是无法使用的。本文通过重映射实现在HAL库多个串口可进行类似printf函数的操作。 2.1 基础配置 2.…...
29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)
上篇介绍了计算机网络的基础知识,也提到互联网(The Internet),本篇将会详细介绍互联网(The Internet)。 文章目录 1. 互联网(The Internet)组成及数据包传输过程2. IP 数据包的不足3…...
xShell常用命令
xShell常用命令 一、文件夹目录1、cd-更改目录2、mkdir-建立目录3、rm-删除目录4、pwd-查看当前路径5、rmdir-删除空目录 二、文件操作1、cat-显示文件内容2、diff-比较文件内容3、查看文件的名字和后缀4、ls-列出文件5、cp-复制文件6、mv-移动和重命名文件找不同:选…...
React性能优化之Memo、useMemo
文章目录 React.memo两种方式参数应用场景 拓展useMemouseMemo(calculateValue, dependencies) 参考资料 React.memo React 的渲染机制,组件内部的 state 或者 props 一旦发生修改,整个组件树都会被重新渲染一次,即时子组件的参数没有被修改&…...
IDEA开启并配置services窗口
前言: 一般一个spring cloud项目中大大小小存在几个十几个module编写具体的微服务项目。此时,如果要调试测需要依次启动各个项目比较麻烦。 方法一: 默认第一次打开项目的时候,idea会提示是否增加这个选项卡,如果你没…...
vue2企业级项目(三)
vue2企业级项目(三) 引入mockjs,i18n 1、mockjs 项目下载依赖 npm install --save-dev mock根目录创建mock文件夹,并创建mock/index.js import Mock from "mockjs";// 设置全局延时 没有延时的话有时候会检测不到数据…...
QT 在label上透明绘图
一、新建TransparentDemo工程 二、在界面上添加label,修改样式表,将底色置为红色,作为北京 三、新建一个TransparentLabel类,继承自QLabel 此时,工程包括文件 五、在transparentlabel.h中添加 头文件 #include …...
SAM(Segment Anything)大模型论文汇总
A Comprehensive Survey on Segment Anything Model for Vision and Beyond 论文:https://arxiv.org/abs/2305.08196 25页综述,198篇参考文献!52个开源项目!本文第一个全面回顾了分割一切模型(SAM)的研究和应用进展,…...
金融翻译难吗,如何做好金融翻译?
我们知道,金融翻译涉及企业经济这块的,是影响各公司发展很重要的一方面,翻译做得好,可以促进公司内外的交流,及时掌握各种信息,做好应对。那么,金融翻译难吗,如何做好金融翻译&#…...
Java面试题(Tomcat与Nginx)
Tomcat 什么是Tomcat? 简单来说是一个运行Java的网络服务器,也是jsp和serlvet的一个容器 Tomcat的缺省端口是多少,怎么修改? conf文件夹下修改server.xml文件 <Connector connectionTimeout"20000" port"8080" p…...
React-使用mobx
React 中使用 mobx 配置开发环境 安装mobx和中间件工具 mobx-react-lite 只能函数组件中使用 yarn add mobx mobx-react-lite初始化 mobx 定义数据状态 state在构造器中实现数据响应式处理 makeAutoObservble定义修改数据的函数 action实例化 store 并导出 import { compute…...
LeetCode ACM模式——哈希表篇(一)
刷题顺序及部分思路来源于代码随想录,网站地址:https://programmercarl.com 部分思路来源于力扣官方题解,作者主页:https://leetcode.cn/u/leetcode-solution/ 242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个…...
WPF实战学习笔记31-登录界面全局通知
UI添加消息聚合器 <md:Snackbarx:Name"LoginSnakeBar"Grid.ColumnSpan"2"Panel.ZIndex"1"MessageQueue"{md:MessageQueue}" />注册提示消息 文件:Mytodo.Views.LoginView.cs构造函数添加内容 //注册提示消息 aggre…...
通用商城项目(中)
金山编译器出问题了。下面段落标号全出问题了,排版也出问题了。懒得改了。 使用对象存储OSS,保存品牌logo 新建Module,提供上传、显示服务 有些不明所以的,按照steinliving-commodity配置了一通pom.xml 新建application.yml&…...
基于MCP协议的AI驱动API测试:原理、架构与工程实践
1. 项目概述:API测试的“瑞士军刀”MCP最近在梳理团队内部的API测试流程时,发现了一个挺有意思的项目:cocaxcode/api-testing-mcp。乍一看这个标题,可能很多朋友会有点懵,这“MCP”是个啥?其实,…...
2026年程序员AI工具链完整配置指南:从开发到部署全流程
你的开发环境还在用2023年的工具?醒醒,AI工具链已经迭代了三代了。## 前言作为一个从 Cursor 0.x 版本就开始跟的早期用户,我亲眼见证了AI编程工具从"玩具"变成"生产力核武器"的过程。2026年5月的今天,整个AI…...
用GitHub仓库构建个人技能树:结构化、版本化知识管理实践
1. 项目概述:从“技能”仓库到个人知识体系的构建最近在GitHub上看到一个挺有意思的仓库,名字叫Apolinariolanga/skills。乍一看,这名字很直白——“技能”。在技术社区里,以“skills”命名的仓库并不少见,但每一个背后…...
PostgreSQL游标:海量数据处理与高效分页的核心机制
1. 项目概述:为什么我们需要关注PostgreSQL游标?在数据库应用开发中,尤其是处理海量数据时,我们常常会遇到一个经典的两难困境:要么一次性将所有数据加载到应用内存中,导致内存溢出(OOM…...
ESP32-S3电源管理与CircuitPython开发实战:从硬件设计到低功耗优化
1. ESP32-S3电源管理:不只是供电,更是项目成败的关键玩嵌入式开发,尤其是物联网项目,最头疼的往往不是代码逻辑,而是“电”。一块板子,插着USB线跑得欢,一拔掉电池,没俩小时就歇菜了…...
深入解析JavaScript光标增强库:原理、实战与性能优化
1. 项目概述:一个被低估的JavaScript光标增强库 在Web前端开发中,我们常常会忽略一个看似微小却直接影响用户体验的细节——光标。无论是文本编辑器、代码IDE,还是富文本应用,光标的样式、行为和状态反馈,都直接关系到…...
ARM GICv3中断控制器架构与ICC_CTLR_EL3寄存器解析
1. ARM GICv3中断控制器架构概述在现代处理器架构中,中断控制器是连接外设与CPU核心的关键枢纽。ARM的通用中断控制器(Generic Interrupt Controller, GIC)经过多代演进,GICv3架构在虚拟化支持、多安全域管理和扩展性方面实现了显著提升。作为GICv3的核心…...
AI手机新突破!端侧智能体提速1.6倍,纯软件框架
AI助理正在加速走进我们的手机和电脑,帮我们自动回复邮件、安排会议日程。人们总是希望这些助理不仅聪明,还能把数据留在本地以保护隐私。但现有的端侧设备运行这些大模型智能体时,往往慢得让人失去耐心。由韩国科学技术院(KAIST&…...
KiloCode:命令行代码片段管理工具的设计与实战应用
1. 项目概述:一个面向开发者的轻量级代码片段管理工具如果你和我一样,每天在IDE、终端、浏览器和笔记软件之间反复横跳,只为找到上周写过的那个“完美”的Shell脚本片段,或者那个解决特定API调用的Python函数,那么你一…...
【独家拆解】微软Copilot Studio、LangChain Agent、UiPath Autopilot底层架构差异:传统自动化团队转型窗口仅剩18个月
更多请点击: https://intelliparadigm.com 第一章:AI Agent与传统自动化的本质区别 核心能力范式迁移 传统自动化(如RPA、Shell脚本、定时任务)依赖预设规则和固定流程,执行确定性动作;而AI Agent具备感知…...
