小明是蓝桥王国的勇士,他晋升为蓝桥骑士,于是他决定不断突破自我。 这天蓝桥首席骑士长给他安排了 NN 个对手,他们的战力值分别为 a_1,a_2,...,a_n,且按顺序阻挡在小明的前方。对于这些对手小明可以选择挑战,也可以选择避战。 作为热血豪放的勇士,小明从不走回头路,且只愿意挑战战力值越来越高的对手。 请你算算小明最多会挑战多少名对手。 输入格式: 输入第一行包含一个整数 N,表示对手的个数。 第二行包含 N 个整数 a_1,a_2,...,a_n ,分别表示对手的战力值。 1≤N≤10^3 ,1≤a_i≤10^9。 输出格式: 输出一行整数表示答案。
时间: 2023-06-18 09:02:03 浏览: 64
这是一个经典的最长上升子序列问题(LIS)。可以使用动态规划来解决。
定义状态:dp[i] 表示以第 i 个对手为结尾的最长上升子序列的长度。
状态转移方程:dp[i] = max{dp[j]+1},其中 j<i,且 a[j]<a[i]。
初始状态:dp[1]=1。
最终答案:max{dp[i]},其中 1≤i≤N。
时间复杂度为 O(N^2),可以通过此题,但是还有更优秀的 O(NlogN) 算法。
相关问题
蓝桥杯的题目:蓝桥勇士
题目描述:
蓝桥勇士正在探险,来到了一个迷宫。迷宫是一个 n × m 的矩阵,有些格子上有障碍物,有些格子上可以通行。勇士从迷宫的左上角进入,希望尽快到达右下角出口。
勇士有一个特殊的能力,可以在一些格子处花费一定时间,瞬间到达迷宫中任意一处。每个格子至多使用一次这个能力。
勇士希望用最短的时间到达出口,请你帮助他。
输入格式:
第一行包含两个整数 n,m,表示迷宫的行数和列数。
接下来 n 行,每行包含 m 个整数 0 或 1,其中 0 表示对应格子可以通行,1 表示对应格子上有障碍物。
输出格式:
输出勇士到达出口的最短时间,如果无法到达,则输出 −1。
数据范围:
1≤n,m≤1000
输入样例1:
5 5
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
输出样例1:
8
输入样例2:
5 5
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 1
0 0 0 0 0
输出样例2:
-1
提示:
勇士可以从起点到达的位置,都可以使用能力。
给我设计个蓝桥杯赛前训练计划吧
以下是一份可能的蓝桥杯赛前训练计划:
1. 熟悉考试内容和题型:了解蓝桥杯考试的内容和题型,包括编程语言、数据结构与算法、计算机基础知识和实践能力等方面的内容,并准备相关资料和练习题目。
2. 制定学习计划:根据自己的水平和时间安排,制定一份具体的学习计划,包括每天的学习目标、练习时间和计划完成时间等,以保证充分利用时间进行学习和练习。
3. 提高编程能力:进行编程练习,提高编程能力,特别是数据结构和算法的实践能力。可以参加在线编程竞赛、练习题目和刷题等方式来提高编程能力。
4. 提高计算机基础知识:学习计算机基础知识,包括计算机组成原理、操作系统、计算机网络、数据库等方面的知识,以提高程序的效率和优化能力。
5. 实践能力:进行实践练习,包括操作系统和网络配置、数据库设计和开发、Web开发等方面的实践,以提高实践能力和解决问题的能力。
6. 团队协作:参加团队协作项目,锻炼团队合作和沟通能力,同时学习项目管理和软件开发流程等相关知识。
7. 模拟考试:进行模拟考试,以检验自己的学习成果和考试准备情况,同时找出自己的弱点和不足,加以改进和提高。
8. 调整状态:保持良好的身体状态和心态,保证充足的睡眠和饮食,调整好心态,保持积极向上的心态。
以上是一份可能的蓝桥杯赛前训练计划,具体的训练计划需要根据个人情况和水平来制定。