讨论 / 19行代码8ms
WuK 2015-08-04 20:05:04
点我顶贴 收藏 删除
#include<iostream>

using namespace std;

int n,ans1=0,ans2=0,a[1024]={0},f1[1024]={0},f2[1024]={0};

int main()

{

cin>>n;

for(int i=0;i!=n;++i)

{

cin>>a[i];

for(int j=0;j<i;++j)

{

if(a[j]>=a[i])f1[i]=max(f1[i],f1[j]);//最长不上升子序列

else f2[i]=max(f2[i],f2[j]);//最长上升子序列

}

ans1=max(ans1,++f1[i]);

ans2=max(ans2,++f2[i]);

}

cout<<ans1<<' '<<ans2;

}

#1 lai@2015-10-07 08:35:30
回复 删除
请大神受我一拜!
#2 神童卐鲜肉@2016-03-29 21:55:19
回复 删除
题解有没有误?

#3 Monyan@2016-10-13 04:38:55
回复 删除
为什么求最长上升子序列?

#4 qrzbing@2017-03-19 06:02:42
回复 删除
dalao!!!!!!!!!!
#5 Crzzy@2017-05-02 02:20:21
回复 删除
牛逼,我怎么没想到这样可行。。
查看更多回复
提交回复