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

动态规划--线性规划

一、https://www.lanqiao.cn/problems/3512/learning/

解题步骤:1.dp[i]表示以i结尾最长接龙数列长度

2.每读入一个数字x...y,关注头尾的x,y来更新dp[y]

3.dp【y】= max(dp【y】,dp【x】+1):如果当前数字接在以x结尾数列后(dp【x】+1)的长度 大于 不加当前数字的以y结尾数列长度,则更新dp【y】。

4.求出最长接龙数列,最小删减数等于 N-max_len

#include <bits/stdc++.h>
using namespace std;
int dp[100010];
int main()
{
  int N;
  cin >> N;
  int x=N;
  string s;
  int ans=0;
  while(x--){
    cin >> s;
    int x=s[0]-'0',y= s[s.size()-1]-'0';
    dp[y] = max(dp[x]+1,dp[y]);
    ans = max(dp[y],ans);
  }
  cout << N-ans;
  return 0;
}

二、最大上升子序列 

步骤:1.dp[i]表示以i结尾的最大上升子序列的长度

2.初始化dp【i】=1

3.状态转移方程:如果num[j]<num[i],dp[i] = max(num[j]+1,dp[i])

for(int i=0; i<n; i++)
    dp[i] = 1;
    for(int j=0; j<i; j++)
        {
            if(num[j]<num[i]) dp[i]=max(dp[j]+1,dp[i])
            max_len = max(max_len,dp[i]);
        }

http://www.dtcms.com/a/99534.html

相关文章:

  • Spring解决循环依赖
  • 【无人机路径规划】Matlab基于A星算法的无人机三维路径规划
  • maven高级
  • 微信小程序逆向开发
  • Java -jar运行jar包时可添加参数
  • ‌JVM 内存模型(JDK8+)
  • ModuleNotFoundError: No module named ‘demjson‘
  • JavaScript中的观察者模式
  • https://arxiv.org/
  • WebView展示广告对网站收益的影响分析(桌面平台非点击场景)
  • How to install OpenJ9 JDK 17 on Ubuntu 24.04
  • 《K230 从熟悉到...》矩形检测
  • 机器学习的一百个概念(2)Tomek 链接
  • 人工智能赋能医疗:开启智慧医疗新时代
  • Charles 抓包配置保姆教程(PC、IOS、Android)
  • 《强化学习基础概念:四大模型与两大损失》
  • 环境爬坑,切换python版本,让 jupyter 支持切换不同python版本内核
  • 家电产品智能屏方案,ESP32系列助力智能升级,物联网通信交互应用
  • CubeMx ——新建工程
  • python入门(一)个人笔记
  • 【二刷代码随想录】螺旋矩阵求解方法、推荐习题
  • 表格图表切换,图表无法展示问题复盘
  • 工作记录 2017-03-13
  • Python CSV 数据分析:问题排查与解决全记录
  • Windows学习笔记(3)关于事件日志
  • linux的文件
  • Visual Basic语言的折线图
  • Ubuntu 系统中,每日健康检查
  • vulnhub-Node1
  • C#:第一性原理拆解字段(fields)