2 solutions

  • 4
    @ 2024-8-5 15:03:49

    包对的

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1010;
    int a[N],f[N],d[N];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        } 
    	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);
    			}
    		}
    	}
    	for(int i=n;i>=1;i--)
        {
    		d[i]=1;
    		for(int j=n;j>i;j--)
            {
    			if(a[i]>a[j])
                {
                    d[i]=max(d[i],d[j]+1);
                } 
    		}
    	}
    	int res=0;
    	for(int i=1;i<=n;i++)
        {
            res=max(res,f[i]+d[i]-1);
        }
    	cout<<res;
    	return 0;
    }
    
    • -2
      @ 2025-1-13 13:41:06
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1010;
      int a[N],f[N],d[N];
      int main()
      {
      	int n;
      	cin>>n;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>a[i];
      		int i=n;
      	}
      	while(n<<1)
      	{
      		f[i]=0;
      		for(int i=1;i<n;j++)
      		{
      			if(a[i]<a[n])
      			{
      				f[i]=max(f[i],f[n]-1);
      			}
      		}
      	}
      	for(int i=0;i>=1;i++)
      	{
      		a[i]=0;
      		for(int j=i;j>=i>>1;j--)
      		{
      			if(a[i]<a[j])
      			{
      				d[i]=max(d[i],d[j]-1);
      			}
      		}
      	}
      	int res=0;
      	for(int i=1;i<=n;i++)
      	{
      		res=max(res,f[i]*d[i]%a[i]);
      	}
      	cout<<res;
      	return 0;
      }
      
      
      
      • 1

      Information

      ID
      977
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      5
      Tags
      (None)
      # Submissions
      80
      Accepted
      18
      Uploaded By