3 条题解

  • 1
    @ 2023-4-30 16:07:22
    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int n,t,a[1005],b[1005],c[1005],bj[1005],bj2,m=-1;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i=i+1)scanf("%d",&a[i]);
    	for(int i=1;i<=n;i=i+1)
    	{
    		b[i]=1;
    		for(int j=1;j<i;j=j+1)
    		{
    			if((a[i]>a[j])&&(b[i]<(b[j]+1)))
    			{
    				b[i]=b[j]+1;
    			}
    		}
    	}
    	for(int i=n;i>=1;i=i-1)
    	{
    		c[i]=1;
    		bj2=0;
    		for(int j=i+1;j<=n;j=j+1)
    		{
    			if((a[i]>a[j])&&(c[i]<(c[j]+1)))
    			{
    				c[i]=c[j]+1;
    			}
    		}
    		m=max(b[i]+c[i],m);
    	}
    	printf("%d\n",m-1);
    	return 0;
    }
    
    • 0
      @ 2023-12-10 14:51:46
      /****************************************
      Note:
      ****************************************/
      #include <queue>
      #include <math.h>
      #include <stack>
      #include <vector>
      #include <stdio.h>
      #include <iostream>
      #include <vector>
      #include <iomanip>
      #include <string.h>
      #include <cstring>
      #include <algorithm>
      #define int long long
      using namespace std;
      const int N = 1e6 + 10;
      const int INF = 0x3f3f3f3f;
      int n;
      int a[1005];
      int dp[1005];
      int maxn = -1;
      signed main(){
      	ios::sync_with_stdio(false);
      	cin.tie(0);
      	cout.tie(0);
      	cin >> n;
      	for(int i=1;i<=n;i++)
      		cin >> a[i];
      	for(int i=1;i<=n;i++){
      		dp[i] = 1;
      		for(int j=1;j<i;j++)
      			if(a[j]<a[i])
      				dp[i] = max(dp[i],dp[j] + 1);
      		maxn = max(maxn,dp[i]);
      	}
      	for(int i=1;i<=n;i++){
      		for(int j=1;j<i;j++)
      			if(a[j]>a[i])
      				dp[i] = max(dp[i],dp[j] + 1);
      		maxn = max(maxn,dp[i]);
      	}
      	cout << maxn << endl;
      	return 0;
      }
      
      
      • 0
        @ 2023-4-1 16:39:47

        合唱队形,模板中的模板

        #include<iostream>
        #include<cstring>
        #define h using
        #define uh namespace
        #define e std
        h uh e;
        struct node{
        	int x,up,down;
        }a[1005];
        int n,maxx;
        int main(){
        	cin>>n;
        	for(int i=1;i<=n;i++){
        		cin>>a[i].x;
        		a[i].up=1,a[i].down=1;
        	}
        	for(int i=1;i<=n;i++)
        		for(int j=1;j<i;j++)
        			if(a[i].x>a[j].x)
        				a[i].up=max(a[i].up,a[j].up+1);
        	for(int i=n-1;i>=1;i--)
        		for(int j=n;j>i;j--)
        			if(a[i].x>a[j].x)
        				a[i].down=max(a[i].down,a[j].down+1);
        	for(int i=1;i<=n;i++){
        		maxx=max(maxx,a[i].up+a[i].down-1);
        	}
        	cout<<maxx<<endl;
        }
        //       nb          AC
        
      • 1

      信息

      ID
      1413
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      302
      已通过
      74
      上传者