题目链接
题解
题意:
- 后面的数不能大于前面的数,实质就是求最小非递增子区间个数
思路:
- dp,每输入一个数,将它与前面每一个比较,更新dp[i]。
Code
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int M, N, ans, i, j;
int data[1009];
int dp[1009];
while(cin>>M)
{
for(i = 0; i < M; i++)
{
cin>>data[i];
dp[i]=1;
for(j = 0; j < i;j++)
if(data[i] > data[j])
dp[i] = max(dp[i], dp[j]+1);
}
ans = 0;
for(i = 0; i < M; i++)
ans = max(ans,dp[i]);
cout<<ans<<endl;
}
}