问题标题: 酷町堂:2804

0
0
已解决
张灵
张灵
高级守护
高级守护
#include <iostream>
#include <cstdio>
using namespace std;
int a[111111],f[111111],n;
void output1(){
    int ans=0;
    for(int i=n;i>=1;i--){
        f[i]=1;
        for(int j=n;j>i;j--)if(a[i]>=a[j])f[i]=max(f[i],f[j]+1);
        ans=max(f[i],ans);
    } 
    cout<<ans<<endl;
}
void output2(){
    int ans=0;
    for(int i=1;i<=n;i++){
        f[i]=1; 
        for(int j=1;j<=i;j++)if(a[i]>a[j])f[i]=max(f[i],f[j]+1);
        ans=max(f[i],ans);
    } 
    cout<<ans<<endl;
}
int main(){
    while(cin>>a[++n]);
    n--;
    output1();
    output2();
    return 0;
}

请问2804错在哪里?


0
0
汪恺恒
汪恺恒
中级启示者
中级启示者

这题用 O(nlogn) 的最长不上升连续子序列求法才能AC

我要回答