1 条题解
-
0
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
- 上传者