SOS

P1091 [NOIP2004 提高组] 合唱队形

可以看一下我的代码: ```cpp #include <bits/stdc++.h> using namespace std; int a[200],b[200],c[200]; main() { int n,i,j,maxx; cin>>n; memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); for(i=1; i<=n; i++) cin>>a[i]; for(i=1; i<=n; i++) { b[i]=1; for(j=1; j<=i-1; j++) { if(a[i]>a[j] && b[j]+1>b[i]) b[i]=b[j]+1; } } for(i=n; i>=1; i--) { c[i]=1; for(j=i+1; j<=n; j++) { if(a[j]<a[i] && c[j]+1>c[i]) c[i]=c[j]+1; } } maxx=0; for(i=1; i<=n; i++) { if(b[i]+c[i]>maxx) maxx=b[i]+c[i]; } cout<<n-maxx+1; return 0; } ```
by Eason_AC @ 2019-03-23 21:10:00


已AC,但是谁能帮我讲出我两次代码为什么不能等同呢? ```cpp #include<bits/stdc++.h> using namespace std; int a[101],b[101],c[101],d[101],i,j,n,s=2147483647; int main() { scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d",&a[i]),b[i]=1; for (i=2;i<=n;i++) for (j=1;j<i;j++) if ((b[j]+1>=b[i])&&(a[i]>a[j])) b[i]=b[j]+1; for (i=1;i<=n;i++) c[i]=1; for (i=n;i>=1;i--) for (j=i+1;j<=n;j++) if ((c[j]+1>=c[i])&&(a[i]>a[j])) c[i]=c[j]+1; for (i=1;i<=n;i++) { d[i]=n-(b[i]+c[i]-1); s=min(s,d[i]); } printf("%d\n",s); return 0; } ```
by 洛谷是大佬 @ 2019-03-23 21:11:06


撞头像了
by DYKdyk @ 2019-07-15 21:14:50


|