3 条题解

  • -1
    @ 2026-10-22 20:40:29
    #include<bits/stdc++.h>
    using namespace std;
    int a[1010];
    int dp[1010];
    int wshisgcxdog[1010];
    int main(){
    	int n=1,ans=0;
    	while(cin>>a[n++]);
    	n-=2;wshisgcxdog[1]=a[1];
    	dp[1]=1;
    	for(int i=2;i<=n;i++){
    		dp[i]=1;
    		for(int j=1;j<i;j++){
    			if(a[i]<=a[j]){
    				dp[i]=max(dp[j]+1,dp[i]);
    			} 
    		}
    	}
    	for(int i=1;i<=n;i++){
    		ans=max(dp[i],ans);
    	}
    	cout<<ans<<endl;
    	int xt=1;
    	
    	for(int i=2;i<=n;i++){
    			int t=0;
    			for(int j=1;j<=xt;j++){
    			
    				if(wshisgcxdog[j]>=a[i]){
    					t=1;
    					wshisgcxdog[j]=a[i];
    					break;
    				}
    				
    			}
    			if(t==0){
    				xt++;
    				wshisgcxdog[xt]=a[i];			
    			}	
    		}
    		cout<<xt;	
    	return 0;
    }
    
    
    

    注意数组名字

    信息

    ID
    208
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    86
    已通过
    9
    上传者