文章

20

粉丝

147

获赞

13

访问

51.1k

头像
拦截导弹 题解:
P1256 北京大学机试题
发布于2023年11月16日 09:29
阅读数 968

#include<bits/stdc++.h>
using namespace std;
 
const int N=1010;
 
int n;
int a[N],f[N],g[N];
 
int main(){
    int idx=1;
    while(cin>>n){
        a[idx]=n;
        idx++;
    }
    idx=idx-1;
    for(int i=1;i<=idx;i++){
        f[i]=1;
        g[i]=1;
        for(int j=1;j<i;j++){
            if(a[i]>a[j]){
                f[i]=max(f[j]+1,f[i]);
            }
            if(a[i]<=a[j]){
                g[i]=max(g[i],g[j]+1);
            }
        }
    }
    sort(f+1,f+idx+1);
    sort(g+1,g+idx+1);
    
    cout<<g[idx]<<endl;
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发