动态规划专项---状态机模型

 

70530b4346544ad4821252fa57119ccc.jpeg

 


 

文章目录

  • 大盗阿福
  • 股票买卖IV
  • 股票买卖V
  • 设计密码
  • 修复DNA

一、大盗阿福OJ链接

·        本题思路:状态表示当前第i家店铺选择偷或者不偷的最大利益。状态计算:f[i][0]=std::max(f[i-1][0],f[i-1][1]);//如果第i家店铺被偷,则第i-1家店铺不能被偷,f[i][1]=f[i-1][0]+w[i];//如果第i家店铺不被偷,则第i-1家店铺随便安排。

#include <bits/stdc++.h>constexpr int N=1e5+10;int n;
int w[N];
int f[N][2]//状态表示当前第i家店铺选择偷或者不偷的最大利益int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int T;std::cin>>T;while(T--){std::cin>>n;for(int i=1;i<=n;i++) std::cin>>w[i];for(int i=1;i<=n;i++){f[i][0]=std::max(f[i-1][0],f[i-1][1]);//如果第i家店铺被偷,则第i-1家店铺不能被偷f[i][1]=f[i-1][0]+w[i];//如果第i家店铺不被偷,则第i-1家店铺随便安排。}std::cout<<std::max(f[n][0],f[n][1])<<std::endl;}return 0;
}

二、股票买卖IVOJ链接

        本题思路:状态表示:考虑前i天的股票,第i天是否交易且完成交易数位j的最大利润。状态计算之前首先初始化空仓情况全为0状态,然后进行状态间的计算,如果第i天的状态是持仓时,则第i天产生的行为可能是买入或者是持仓行为,此时为f[i,j,1]=std::max(f[i-1,j,1],f[i-1,j-1,1]-w[i]),如果第i天的状态是空仓时,则第i天产生的行为可能是卖出行为或者是空仓行为,此时为f[i,j,0]=std::max(f[i-1,j,0],f[i-1,j,1]+w[i])。

#include <bits/stdc++.h>constexpr int N=1e5+10,M=110;int n,k;
int w[N];
int f[N][M][2];//考虑前i天的股票,第i天的是否交易且完成的交易数为j的最大利润int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);std::cin>>n>>k;for(int i=1;i<=n;i++) std::cin>>w[i];std::memset(f,-0x3f,sizeof f);for(int i=0;i<=n;i++) f[i][0][0]=0;//初始化为空仓for(int i=1;i<=n;i++){for(int j=0;j<=k;j++){if(j) f[i][j][0]=std::max(f[i-1][j][0],f[i-1][j][1]+w[i]);f[i][j][1]=std::max(f[i-1][j][1],f[i-1][j-1][0]-w[i]);}}int res=0;for(int j=0;j<=k;j++) res=std::max(res,f[n][j][0]);std::cout<<res<<std::endl;return 0;
}

三、股票买卖VOJ链接

        本题思路:本题是上面一题的变种多出了一个状态,所以我们可以用j=0表示当前没有股票,且不处于冷冻期,j=1表示当前有股票,j=2表示当前没有股票且处于冷冻期。状态表示:考虑到前i天的股市当前第i天的状态为j时的最大利润。

#include <bits/stdc++.h>constexpr int N=1e5+10;int n;
int w[N];
int f[N][3];//考虑前i天的股市当前第i天的状态为j时的最大利润int main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);std::cin>>n;for(int i=1;i<=n;i++) std::cin>>w[i];memset(f,-0x3f,sizeof f);f[0][0]=0;/*j=0表示当前没有股票且不处于冷冻期j=1表示当前有股票j=2表示没有股票而且还处于冷冻期*/for(int i=1;i<=n;i++){f[i][0]=std::max(f[i-1][0],f[i-1][2]);f[i][1]=std::max(f[i-1][0]-w[i],f[i-1][1]);f[i][2]=f[i-1][1]+w[i];}std::cout<<std::max(f[n][0],f[n][2])<<std::endl;return 0;
}

四、设计密码

五、修复DNA

 

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

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

相关文章

如何实现经济破圈?跟随“绿色积分”先行一步!

近年来&#xff0c;随着消费升级和信息技术的发展&#xff0c;新型消费逐渐成为推动经济增长的重要力量。为了加快发展新型消费&#xff0c;国家政府出台了一系列政策措施&#xff0c;《关于以新业态新模式引流新型消费加快发展》文件就是其中之一。本文将从该文件的背景、目的…

MES系统中的工厂计时计件工资

在制造业中&#xff0c;为了提高工资核算的准确性和效率&#xff0c;实时的数据跟踪和数据处理成为了关键。本文将从多个方面详细介绍MES系统在工厂计时计件工资系统方面的解决方案&#xff0c;以及MES系统与ERP系统如何实现联动集成。 一、MES系统在工厂计时计件工资系统中的解…

4个Python实战项目,让你瞬间读懂Python!

前言 Python 是一种极具可读性和通用性的编程语言。Python 这个名字的灵感来自于英国喜剧团体 Monty Python&#xff0c;它的开发团队有一个重要的基础目标&#xff0c;就是使语言使用起来很有趣。Python 易于设置&#xff0c;并且是用相对直接的风格来编写&#xff0c;对错误…

深入解析Windows操作系统——系统结构

文章目录 需求和设计目标总体结构可移植性对称多处理可伸缩性 关键的系统组件Windows子系统Ntdll.dll执行体内核硬件支持硬件抽象层HAL设备驱动程序 Windows驱动程序模型执行体组件常用的绝大多数函数名前缀 系统进程空闲进程中断和DPCSystem进程和系统线程会话管理器Winlogon、…

NX二次开发UF_CURVE_auto_join_curves 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_auto_join_curves Defined in: uf_curve.h int UF_CURVE_auto_join_curves(tag_t * crv_list, int crv_num, int join_type, tag_t * join_list, int * join_num ) overvi…

马卡龙产业分析:全球市场规模约19.3亿美元

马卡龙由两个杏仁饼干之间夹有奶油、果酱、巧克力等馅料而组成。它具有光滑的外表和柔软的内在&#xff0c;口感细腻、香甜可口。 精致外观和多彩口味&#xff1a;马卡龙以其精美的外观和丰富多样的口味吸引了消费者。色彩缤纷的外表和各种口味的选择使得马卡龙成为一种视觉和味…

Nginx-进程

Nginx-相关问题_01 Windows关闭所有nginx服务 windows 系统下开发调试时不用每次频繁的 启动->任务管理器->查找进程->结束进程&#xff01; 查看nginx的进程占用情况 tasklist | find /i "nginx.exe" || exit关闭nginx的所有进程 taskkill /im nginx.…

leetcode 1670

leetcode 1670 解题思路 使用2个deque作为类的成员变量 code class FrontMiddleBackQueue { public:deque<int> left;deque<int> right;FrontMiddleBackQueue() {}void pushFront(int val) {left.push_front(val);if(left.size() right.size()2){right.push_fr…

C++之STL库:string类(用法列举和总结)

前言 大家在学习STL库的时候一定要学会看英文文档&#xff0c;俗话说熟能生巧&#xff0c;所以还得多练&#xff01; 在使用string类之前&#xff0c;要包含头文件#include <string>和using namespace std; 文档链接&#xff1a;string - C Reference 一、string——构造…

element table滚动条失效

问题描述:给el-table限制高度之后滚动条没了 给看看咋设置的&#xff1a; <el-table:data"tableData"style"width: 100%;"ref"table"max-height"400"sort-change"changeSort">对比了老半天找不出问题&#xff0c;最后…

DS图—图的最短路径/Dijkstra算法【数据结构】

DS图—图的最短路径/Dijkstra算法【数据结构】 题目描述 给出一个图的邻接矩阵&#xff0c;输入顶点v&#xff0c;用迪杰斯特拉算法求顶点v到其它顶点的最短路径。 输入 第一行输入t&#xff0c;表示有t个测试实例 第二行输入顶点数n和n个顶点信息 第三行起&#xff0c;每行…

ATA-7030高压放大器在等离子体实验中的应用有哪些

高压放大器在等离子体实验中有多种重要应用。等离子体是一种带电粒子与电中性粒子混合的物质&#xff0c;其具有多种独特的物理性质&#xff0c;因此在许多领域具有广泛的应用&#xff0c;例如聚变能源、等离子体医学、材料加工等。下面安泰电子将介绍高压放大器在等离子体实验…