#include
#include
using namespace std;
int len[5001] , a[5001];
int main()
{
int i,j,n;
int max;
cin>>n;
//注意输入不要漏啊
for(i = 1;
i <= n;
i++)
{
cin>>a[i];
}
len[n] = 1;
for(i = n-1;
i >= 1;
i--)
{
max = 0;
for(j = i;
j <= n;
j++)
{
if(a[i] < a[j] && max < len[j])
{
max = len[j];
}
}
len[i] = max + 1;
}
sort(len,len+n+1);
cout<
本人很水,方法也很水...望轻喷
(其实 最长严格上升 和 最长上升 有什么区别?查找ing.....)
【1576 最长严格上升子序列】*************************************************************************************仅供吐槽
推荐阅读
- 个人日记|K8s中Pod生命周期和重启策略
- 学习分享|【C语言函数基础】
- C++|C++浇水装置问题
- 数据结构|C++技巧(用class类实现链表)
- C++|从零开始学C++之基本知识
- 步履拾级杂记|VS2019的各种使用问题及解决方法
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- 动态规划|暴力递归经典问题
- 麦克算法|4指针与队列
- 遇见蓝桥遇见你|小唐开始刷蓝桥(一)2020年第十一届C/C++ B组第二场蓝桥杯省赛真题