詀㚈媞糗茱
  • 板块题目总版
  • 楼主UKE_bound
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/30 10:08
  • 上次更新2024/11/30 13:34:32
查看原帖
詀㚈媞糗茱
1073741
UKE_bound楼主2024/11/30 10:08

这道题

#include<bits/stdc++.h>
using namespace std;
int f[1005][1005];
int a[1005];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        for(int j=1;j<=i;j++){
            f[i][j]=max(f[i-1][j-1],f[i-1][j]);
            if(a[j]==i){
                f[i][j]=max(f[i][j],f[i-1][j-1]+1);
            }
        }
    }
    // for(int i=1;i<=n;i++){
    //     for(int j=0;j<=n;j++){
    //         cout<<f[i][j]<<" ";
    //     }
    //     cout<<endl;
    // }
    int ans=0;
    for(int i=0;i<=n;i++){
        ans=max(ans,f[n][i]);
    }
    cout<<ans;
    return 0;
}
2024/11/30 10:08
加载中...