1 条题解

  • 0
    @ 2025-2-14 21:01:01

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int g[105],f[105],a[105],n,maxx;
    int main()
    { 
    	cin>>n;
    	for(int i=1;i<=n;i++)
    		cin>>a[i],f[i]=g[i]=1;
    	for(int i=n-1;i>=1;i--)
    		for(int j=i+1;j<=n;j++)
    			if(a[i]>a[j]&&f[i]<=f[j]+1)f[i]=f[j]+1; 
    	for(int i=2;i<=n;i++)
         	for(int j=1;j<i;j++)if(a[i]>a[j]&&g[i]<=g[j]+1)g[i]=g[j]+1;
    	for(int i=1;i<=n;i++)maxx=max(maxx,f[i]+g[i]-1);
    	cout<<n-maxx;
    	return 0;
    }
    

    Pascal :

    const
      maxn=1001; 
    var
      f1,f2,a:array[0..maxn] of longint; 
      i,j,n,ans:longint; 
    begin 
      readln(n); 
      for i:=1 to n do read(a[i]); 
      a[0]:=-maxlongint; 
      for i:=1 to n do 
        for j:=i-1 downto 0 do 
          if (a[j]<a[i]) and (f1[j]+1>f1[i]) then f1[i]:=f1[j]+1; 
      a[n+1]:=-maxlongint; 
      for i:=n downto 1 do 
        for j:=i+1 to n+1 do 
          if (a[j]<a[i]) and (f2[j]+1>f2[i]) then f2[i]:=f2[j]+1; 
      ans:=0; 
      for i:=1 to n do 
        if f1[i]+f2[i]>ans then ans:=f1[i]+f2[i]; 
      writeln(n-ans+1); 
    end. 
    
    • 1

    信息

    ID
    611
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者