1 #include <cstdio> 2 #include <iostream> 3 #define MAXN 100 + 10 4 using namespace std; 5 int a[10010],b[10010],h[10010]; 6 int main() 7 { 8 //freopen(".in","r",stdin); 9 //freopen(".out","w",stdout); 10 int i=1,maxn,ans=0,num=0,n=0; 11 while(cin>>a[i]) 12 { 13 maxn=0; 14 for(int j=1;j<=i-1;j++) 15 if(a[j]>=a[i] && b[j]>maxn) 16 maxn=b[j]; 17 b[i]=maxn+1; 18 ans=max(b[i],ans); 19 int x=0; 20 for(int j=1;j<=num;j++) 21 if(h[j]>=a[i]) 22 if(x==0) 23 x=j; 24 else if(h[j]<h[x]) 25 x=j; 26 if(x==0) 27 { 28 num++; 29 x=num; 30 } 31 h[x]=a[i]; 32 i++; 33 } 34 cout<<ans<<endl<<num; 35 //system("pause"); 36 } 导弹拦截
转载于:https://www.cnblogs.com/jason2003/p/6571995.html
相关资源:JAVA上百实例源码以及开源项目