此动态规划的状态转移方程为dp[i]=max{1, dp[j]+1 | j<i && A[j]>A[i]}.
#include<iostream>
using namespace std;
int height[26];
int dp[26];
int main(){
int k;
while(cin>>k){
for(int i=0;i<k;i++){
cin>>height[i];
}
int answer=0;
for(int i=0;i<k;i++){
dp[i]=1; //初始化为1
for(int j=0;j<i;j++){
if(height[j]>=height[i]){
dp[i]=max(dp[j]+1,dp[i]);
}
}
answer=max(answer,dp[i]);
}
cout<<answer<<endl;
}
return 0;
}



京公网安备 11010502036488号