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日

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题