3 条题解

  • 0
    @ 2026-3-17 20:45:58
    #include<bits/stdc++.h>
    using namespace std;
    int ans,n,a[10005],dp1[10005],dp2[10005];
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	for(int i=1;i<=n;i++){
    		for(int j=0;j<i;j++)
    			if(a[j]<a[i])dp1[i]=max(dp1[i],dp1[j]+1);
    	}
    	for(int i=n;i>0;i--){
    		for(int j=n+1;j>i;j--){
    			if(a[j]<a[i])dp2[i]=max(dp2[i],dp2[j]+1);
    			
    		}
    	}
    	for(int i=1;i<=n;i++){
    		ans=max(dp1[i]+dp2[i]-1,ans);
    	}cout<<n-ans;
    	return 0;
    }
    
    • 0
      @ 2025-10-18 18:42:24

      #include<bits/stdc++.h> using namespace std; int a[200],b[200],c[200],n,maxx; main(){ cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++){ b[i]=1; for(int j=1;j<i;j++){ if(a[i]>a[j]&&b[j]+1>b[i])b[i]=b[j]+1; } } for(int i=n;i>=1;i--){ c[i]=1; for(int j=i+1;j<=n;j++)if(a[j]<a[i]&&c[j]+1>c[i])c[i]=c[j]+1; } for(int i=1;i<=n;i++)maxx=max(maxx,b[i]+c[i]); cout<<n-maxx+1; return 0; } //1 14/1=14 //(y2-y1)/(y-y1)

      • 0
        @ 2023-12-23 9:13:36
        #include<bits/stdc++.h>
        using namespace std;
        int n,a[110],maxn,max2,t,f[110],f2[110];
        int main()
        {
          int i,j;
          cin>>n;
          for(i=1;i<=n;i++)
          cin>>a[i];
          for(i=1;i<=n;i++)
          {
          	f[i]=1;
        	for(j=1;j<i;j++)
        	if(a[i]>a[j]&&f[j]+1>f[i])f[i]=f[j]+1;
          }
          for(i=n;i>=1;i--)
          {
          	f2[i]=1;
        	for(j=i+1;j<=n;j++)
        	if(a[i]>a[j]&&f2[j]+1>f2[i])f2[i]=f2[j]+1;
          }
          for(i=1;i<=n;i++)
          {
          	if(f[i]+f2[i]>maxn)maxn=f[i]+f2[i];
          }
          cout<<abs(n-maxn+1);
        }
        
        • 1

        信息

        ID
        14
        时间
        1000ms
        内存
        256MiB
        难度
        4
        标签
        (无)
        递交数
        258
        已通过
        116
        上传者