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

最大和---记忆化搜索

路径类问题--

1.变量--当前路径

2.边界条件-->n return 0

                ==n return dp[n]=a[n]

               记忆化!=inf return dp[i]

3.转移,dp【i】就是要记录最大值a【i】+s

同时s不能取0,因为会有负数

蓝桥账户中心

创作中心-CSDN

#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef  long long ll;
int n;
int a[N]; 
ll dp[N];
int d(int x)
{if(x==1) return 1;for(int i=2;i<=sqrt(x);i++){if(x%i==0) return i;}return x;
}
ll ma;
ll dfs(int x)
{if(x==n) return a[n];if(x>n) return 0;///大于n没有a就是0 if(dp[x]!=0x3f3f3f3f3f3f3f3fLL) return dp[x];///记忆化 ll s=-1*0x3f3f3f3f3f3f3f3fLL;for(int i=x+1;i<=x+d(n-x);i++){dp[i]=dfs(i);s=max(s,dp[i]);///s选最大的dp,也就是跳最大的 }dp[x]=a[x];///跳到这里起码有个a[x] dp[x]+=s;return dp[x];
}
int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++) cin>>a[i];memset(dp,0x3f,sizeof(dp));dfs(1);cout<<dp[1];return 0;
}

http://www.xdnf.cn/news/549667.html

相关文章:

  • Python中列表相关操作
  • 【生活tips】保存系统随机的壁纸
  • 逆元(费马,扩展欧几里得)
  • PostgreSQL 初体验
  • 基于线性回归的数据预测
  • git学习与使用(远程仓库、分支、工作流)
  • JAVA面向对象——对象和类的基本语法
  • 游戏开发实战(二):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • Spring Boot 监听器(Listeners)详细教程
  • 为什么以太网一端配置为自协商(Auto-negotiation),另一端强制为**全双工(Full Duplex)**时,最终状态是自协商端降级为 半双工
  • Spring Boot中如何使用RabbitMQ?
  • 离线环境破局:聚客AI无外网部署Dify的依赖镜像打包与增量更新方案
  • 第三十天打卡
  • 3D几何建模引擎3D ACIS Modeler核心功能深度解读
  • ES(Elasticsearch) 基本概念(一)
  • 【Linux】初见,基础指令(续)
  • Linux第十一讲:信号
  • 构建自动收集并总结互联网热门话题的网站
  • 进程间通信(IPC)常用方式对比
  • 当PLC遇上电焊机器人:EtherCAT转CANopen上演工业级“语言翻译官”
  • DP2 跳台阶【牛客网】
  • [面试精选] 0001. 两数之和
  • 人工智能的“歧视”:“她数据”在算法运行中隐形
  • C46-二维数组与指针的总结
  • VUE3 中的 ResizeObserver 警告彻底解决方案
  • C#:多线程Task使用
  • c++使用protocol buffers
  • JS实现古诗竖排从右至左
  • 谈谈jvm的调优思路
  • c++学习方向选择说明