news 2026/5/16 1:50:14

C++动态规划 DP(1)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++动态规划 DP(1)

C++动态规划 DP

动态规划把大问题拆成小问题,把小问题算出来用dp数组存起来,大问题用小问题解决,递推,不用重复算。

1、斐波那契数列

题目大意:1 1 2 3 5 8 13 21 34 …

公式:dp[n]=dp[n-1]+dp[n-2]

#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n;//找第n位元素是什么,从1开始 int dp[100]; //设初始条件 dp[1]=1; dp[2]=1; //递推 for(int i=3;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]; } cout<<dp[n];//第n位元素的数字 return 0; }

2、爬楼梯

题目大意:一次爬1阶,或者2阶,爬到n阶有几种方法

1 2 3 5 8 13 21 34…

公式:dp[n]=dp[n-1]+dp[n-2]

#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int dp[105]; dp[1]=1; dp[2]=2; for(int i=3;i<=n;i++){ dp[i]=dp[i-1]+dp[i-2]; } cout<<dp[n]; return 0; }

3、打家劫舍

题目大意:一排房子,每间房子有固定钱财。不能偷相邻两间房子,求最多能偷多少钱。

定义dp, dp[i]:前i间房子,能偷到的最大总钱数

只有1间时,只能偷它,dp[1]=a[1]

有两间时:选钱多的那一间,dp[2]=max(a[1],a[2])

到第i间只有两种选择

1、不偷第i间:最大值=dp[i-1]

2、偷第i间:就不能偷i-1间,只能用dp[i-2]+a[i];

公式:dp[i]=max(dp[i-1],dp[i-2]+a[i])

#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int a[105],dp[105]; for(int i=0;i<n;i++){ cin>>a[i]; } dp[1]=a[1]; dp[2]=max(a[1],a[2]); for(int i=3;i<=n;i++){ dp[i]=max(dp[i-1],dp[i-2]+a[i]);//在不偷第i间与偷第i间中选一个最大值 } cout<<dp[n]; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 1:50:08

队列 手把手教会你

队列 先进 先出 很公平 排队打菜一样 有对头 和 对尾 就是对单链表 限制或者只去用部分的函数 就不要其他的功能 来使其 具有独特的 属性和 应用场景 现实 比喻 嘉豪 男娘 等 1 为什么非要包一个结构体&#xff1f;因为队列必须同时记住&#xff1a;头在哪、尾在哪…

作者头像 李华
网站建设 2026/5/16 1:43:12

Docker Desktop Macbook界面汉化

1、根据自己的版本下载文件&#xff08;下载地址&#xff09; 2、打开访问->前往->前往文件夹&#xff0c;输入目录地址 /Applications/Docker.app/Contents/MacOS/Docker Desktop.app/Contents/Resources 3、关闭Docker Desktop把下载的app-Mac-apple.asar改名为&am…

作者头像 李华
网站建设 2026/5/16 1:36:25

FineReport纵向,横向扩展

1.纵向扩展和横向扩展横向扩展数据,可以单元格中选择对应数据列,然后选择扩展方向,注意: 上父格:无重点是横向数据按列汇总统计:因为是横向扩展了所以没办法指定单元格SUM(单元格[;!0]) 这是纵向的求和SUM(单元格[!0;]) 这是横向的求和关键: sum(D4[!0;])然后左父格:无 上父格…

作者头像 李华
网站建设 2026/5/16 1:34:25

圣淘沙客服服务中心搭建记录(移动端入口 + 百度SEO优化)

最近在测试一个&#xff1a;移动端客服服务型网站。这次主要方向&#xff1a;* 手机端访问优化 * 在线客服展示 * APP下载入口 * 百度SEO收录 * HTTPS安全访问 * 移动端单页结构测试站&#xff1a;https://shengtaoshakf.com页面主要围绕&#xff1a;* 在线客服 * 官方服务入口…

作者头像 李华
网站建设 2026/5/16 1:34:16

在OpenClaw中快速接入Taotoken实现AI助手功能

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在OpenClaw中快速接入Taotoken实现AI助手功能 OpenClaw是一款功能强大的AI助手工具&#xff0c;能够帮助开发者进行代码生成、问题…

作者头像 李华
网站建设 2026/5/16 1:31:03

Express快速上手

一、前置环境准备 1. 安装 Node.js Express 依赖 Node.js&#xff0c;先安装&#xff1a; 官网&#xff1a;https://nodejs.org/推荐版本&#xff1a;LTS 长期稳定版验证安装&#xff1a; node -v # 查看 Node 版本 npm -v # 查看 npm 版本2. 初始化项目 创建项目文件夹…

作者头像 李华