3 条题解

  • 0
    @ 2022-11-5 13:49:35

    #include using namespace std; int a[100001],top=0,n,x; int main(){ cin>>n>>x; a[++top] = x; for(int i=2;i<=n;i++){ cin>>x; if(x>=a[top])a[++top]=x; else{ int p=upper_bound(a+1,a+top+1,x)-a; a[p]=x; } } cout<<top; return 0; }

    • -1
      @ 2022-10-29 11:48:38
      #include<bits/stdc++.h>
      using namespace std;
      int a[100001],top=0,n,x; 
      int main(){
      	cin>>n>>x;
      	a[++top] = x;
      	for(int i=2;i<=n;i++){
      		cin>>x;
      		if(x>=a[top])a[++top]=x;
      		else{
      			int p=upper_bound(a+1,a+top+1,x)-a;
      			a[p]=x;
      		} 
      	}
      	cout<<top;	
          return 0;
      } 
      
      • -2
        @ 2022-10-29 10:45:50

        Language:Cpp98 100%AC

        #include<bits/stdc++.h>
        using namespace std;
        int a[100000],f[100000];
        int maxl(int len)
        {
            int maxn = 1;
            for (int i=0;i<len;i++)
        	{
                if (f[i] >= maxn && a[len] >= a[i])
        		{
                    maxn = f[i] + 1;
                }
            }
            return maxn;
        }
        int main()
        {
        	int n;
            cin>>n;
        	for (int i = 0;i < n;i++)
        	{
           		cin>>a[i];
            }
            f[0]=1;
            for(int i = 1;i < n;i++)
        	{
            	f[i]=maxl(i);
            }
            sort(f,f+n);
            cout << f[n-1]<< endl;
            return 0;
        }
        
        • 1

        信息

        ID
        790
        时间
        1000ms
        内存
        128MiB
        难度
        7
        标签
        递交数
        229
        已通过
        57
        上传者