原封不动地搬动了上一道动规题目,把cardnum进行套到第一重,因为对应了第一组输入。 可以去参考https://ac.nowcoder.com/acm/problem/15032这道题,两道题是相同思路地。

Fighting!!!

#include<cstring>
const int N = 1e9 + 7;
using namespace std;
typedef long long ll;
ll sum,n;
ll a[110],dp[110],cardnum =0;;
int main(){
    while(cin>>n)
    {
        cardnum=0;
        for(int i =0;i<n;i++){
        cin>>a[i];
    }
    for(int i =0;i<n;i++){
        dp[i]=1;
    }
    for(int i =0;i<n;i++){
        for(int j =0;j<i;j++){
            if(a[i]>=a[j]){
                dp[i]=max(dp[i],dp[j]+1);
            }
        }
        cardnum=max(cardnum,dp[i]);
    }
    cout<<cardnum<<endl;
    }
    return 0;
}