蓝桥杯题目---蓝桥骑士(寻找逐渐递增的子序列 最多个数)

题目描述
小明是蓝桥王国的骑士,他喜欢不断突破自我。

这天蓝桥国王给他安排了 N 个对手,他们的战力值分别为 a_1,a_2,…,a_n,且按顺序阻挡在小明的前方。对于这些对手小明可以选择挑战,也可以选择避战。

身为高傲的骑士,小明从不走回头路,且只愿意挑战战力值越来越高的对手。

请你算算小明最多会挑战多少名对手。

输入描述
输入第一行包含一个整数 N,表示对手的个数。

第二行包含 N 个整数 a_1,a_2,…,a_n分别表示对手的战力值。

输出描述
输出仅一行包含一个整数表示答案。

样例输入
6
1 4 2 2 5 6
样例输出
4

状态方程:dp[ i ] 以第i个数结尾的最长子序列长度
dp改变的要求最长子序列 且 战力值大于之前

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N = 10001;
int a[N],dp[N]; //dp[i] 以第i个数为结尾的最长递增子序列的长度
int main(){
    int n;
    cin >> n;
    for(int i=1;i<=n;i++){
        cin >> a[i];
    }
    dp[1]=1;
    int ans = 1;
    for(int i=2;i<=n;i++){
        int max=0;
    for(int j=1;j<i;j++)
    if(dp[j]>max && a[i]>a[j]) //最长递增子序列长度增加 且 战力值大于之前的
      max = dp[j];  //遍历i之前的点 找到最大的递增子序列长度
    dp[i] = max+1;
    if(dp[i] > ans)  ans = dp[i];
    }
    cout << ans <<endl;
    return 0;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
蓝桥杯大赛,全称是蓝桥杯全国软件和信息技术专业人才大赛,是由中华人民共和国工业和信息化部人才交流中心主办,国信蓝桥教育科技(北京)股份有限公司承办的计算机类学科竞赛。这是一个全国高校参加的赛事,累计参赛人数已经超过40万人,旨在推动软件和信息技术产业的发展,促进软件和信息技术专业技术人才培养,向软件和信息技术行业输送具有创新能力和实践能力的高端人才,提升高校毕业生的就业竞争力,全面推动行业发展及人才培养进程。 蓝桥杯大赛的考试范围涵盖了基本数据类型及类型转换、变量与常量、字符与字符串、数组、赋值运算符、算数运算符逻辑运算符、关系运算符,顺序结构、分支结构、循环结构程序设计,函数定义和使用,变量的作用域,递归函数,简单算法,基本数据结构,指针,基本算法等。 蓝桥杯大赛的难度相对于ACM和程序设计竞赛而言题目要简单一些,比赛形式为个人赛,一共有十道题目题目难度顺序一般按照由易到难。前面几道题目一般是给出题面问一个特定的答案,只需要在本地计算然后提交答案。中间会有程序填空题,根据题意填空。后面的题目就是需要提交代码,跑通给定的案例。题目完全为客观题型,选手所提交作答的运行结果为主要评分依据,比赛不能携带纸质资料。 蓝桥杯大赛已被列入中国高等教育学会发布的“全国普通高校学科竞赛排行榜”,成为高校教育教学改革和创新人才培养的重要竞赛项目。对于学生而言,参与蓝桥杯大赛不仅有助于提升个人的编程和解决问题的能力,还可以在奖学金评定、升学考研等方面带来一定的助益。 请注意,蓝桥杯大赛的赛制、考试范围等可能会根据每年的具体情况有所调整,建议访问蓝桥杯大赛官网或关注相关新闻报道,以获取最新和最准确的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值