gyk1303 2021-10-24 18:28 采纳率: 100%
浏览 19
已结题

合唱队形(c++),大家帮我看看是哪错了!


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b[3000],c[3000],d[3000],maxn,ans=0;
    cin>>a;
    for(int i=1;i<=a;i++) 
    {
        cin>>b[i];
    }
    c[1]=1;
    for(int i=2;i<=a;i++)
    {
        maxn=0;
        for(int j=1;j<i;j++)
        {
            if(b[i]>b[j])
            {
                if(c[j]>maxn)
                {
                    maxn=c[j];
                }
            }
        }
        c[i]=maxn+1;
    }
    d[1]=1;
    for(int i=a-1;i>=1;i--)
    {
        maxn=0;
        for(int j=i+1;j<=a;j++)
        {
            if(b[i]>b[j])
            {
                if(d[j]>maxn)
                {
                    maxn=d[j];
                }
            }
        }
        d[i]=maxn+1;
    }
    for(int i=1;i<=a;i++)
    {
        if(c[i]+d[i]>ans)
        {
            ans=c[i]+d[i];
        }
    }
    cout<<a-(ans-1);
}
  • 写回答

1条回答 默认 最新

  • _Youngyx 2021-10-24 18:51
    关注
    
    #include <bits/stdc++.h>
    using namespace std;
    int a[102], dp1[102], dp2[102];
    int n, mid, ans = 0, mx;
    int main()
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
        }
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                mx = 0;
                for (int k = 1; k < j; k++) {
                    if (a[k] < a[j]) {
                        mx = max(mx, dp1[k]);
                    }
                }
                dp1[j] = mx + 1;
            }
            for (int j = n; j >= i; j--) {
                mx = 0;
                for (int k = n; k > j; k--) {
                    if (a[k] < a[j]) {
                        mx = max(dp2[k], mx);
                    }
                }
                dp2[j] = mx + 1;
            }
            ans = max(ans, dp1[i] + dp2[i] - 1);
        }
        printf("%d", n - ans);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月1日
  • 已采纳回答 10月24日
  • 创建了问题 10月24日

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?