3 条题解
-
1blue lock (2022ts128) LV 9 @ 2023-4-30 16:12:55
#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",n-m+1); return 0; }
-
02023-9-2 14:50:46@
#include <iostream> using namespace std; const int maxn=1e6+10; int dp_a[maxn],dp_b[maxn],a[maxn]; int cnt=-1; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } dp_a[1]=dp_b[n]=1; for(int i=2;i<=n;i++){ dp_a[i]=1; for(int j=1;j<i;j++){ if(a[j]<a[i])dp_a[i]=max(dp_a[i],dp_a[j]+1); } } for(int i=n-1;i>=1;i--){ dp_b[i]=1; for(int j=n;j>i;j--){ if(a[j]<a[i])dp_b[i]=max(dp_b[i],dp_b[j]+1); } } for(int i=1;i<=n;i++)cnt=max(cnt,dp_a[i]+dp_b[i]-1); cout<<n-cnt; return 0; }
-
02023-3-10 18:50:24@
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int dp[1005], n, a[1005], maxn,dp2[1005]; int main() { 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[i] > a[j]) dp[i] = max(dp[j] + 1, dp[i]); } for(int i = n;i >= 1;i--) { dp2[i] = 1; for(int j = n;j > i ;j--) if(a[i] > a[j]) dp2[i] = max(dp2[j] + 1, dp2[i]); } int sum = 0; for(int i = 1; i <= n; i++) { sum = max(dp[i] + dp2[i] - 1, sum); } printf("%d\n",n - sum); }
- 1
信息
- ID
- 1622
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 236
- 已通过
- 49
- 上传者