算法学习,准备2022蓝桥杯(5.10线性DP)

学习目标:

No.10线性DP


学习内容:

最长上升子序列问题:
输入7个数字 :3 1 2 1 8 5 6.则该序列的最长上升子序列为{1, 2,5,6}
DP:
在这里插入图片描述
其中,f[5]表示的意思是以5为下表的数作为结尾的上升子序列。第五个数是8,则子序列有8 18 28 18 128 38.
我们把第i个数确定,以i - 1作为分类点。若a[i - 1] < a[i] 所以长度为f[i - 1] + 1.


DP模板:

#include <iostream>
#include <algorithm>

using namespace std;

int n;
const int N = 1010;
int a[N], f[N];

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i ++ ) scanf("%d", &a[i]);
    
    for(int i = 1; i <= n; i ++ )
    {
        f[i] = 1;//序列只有一个数
        for(int j = 1; j < i; j ++ )
        if(a[j] < a[i])
        f[i] = max(f[i], f[j] + 1);
    }
    int res = 0;
    for(int i = 1; i <= n; i ++ ) res = max(res, f[i]);
    
    printf("%d", res);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了版本不匹配可能导致错误,所以请确保你的QT版本与VS2022兼容。引用中提到了从VS扩展里卸载并重新下载QT扩展,你可以尝试这种方法。另外,根据引用中的代码,这段代码是一个简单的QT应用程序的入口文件。它包含了头文件"widget.h"和"<qapplication.h>",然后定义了一个main函数,创建一个QApplication对象,创建一个Widget对象,设置Widget的大小,显示Widget,并使用a.exec()运行QT应用程序。根据你的问题,你可能需要安装QT 5.10的版本,并在VS2022中设置正确的项目配置以使用QT 5.10。具体步骤如下: 1. 确保你已经下载并安装了QT 5.10版本,并且已经将其添加到了VS2022的配置中。 2. 打开VS2022,创建一个新的QT项目。 3. 在项目设置中选择QT版本为5.10。 4. 将你的代码文件(包括"widget.h"和"main.cpp")添加到项目中。 5. 编译和运行项目,确保没有错误。 6. 如果仍然遇到问题,请尝试在VS扩展中卸载并重新下载QT扩展,确保使用最新的QT扩展。 通过以上步骤,你应该能够成功使用QT 5.10在VS2022中开发应用程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [VS2022最新版的QT环境配置和搭建](https://blog.csdn.net/Z228273/article/details/125285916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [在vs2022中对于QT5的简单使用](https://blog.csdn.net/LeMark2333/article/details/128058729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值