weixin_41429120 2023-05-06 20:25 采纳率: 34.6%
浏览 72
已结题

C++算法问题,难度较大

img


为了在即将到来的晚会上有更好的演出效果,作为合唱队负责人的小 A 需要将合唱队的人根据他们的身高排出一个队形。 假定合唱队一共

  • 写回答

2条回答 默认 最新

  • AI迅剑 2023-05-13 09:30
    关注
    获得7.50元问题酬金
    
    #include<iostream>
     
    using namespace std;
    const int N=1111,mod=19650827;
    int f[N][N][2],a[N];
    int n;
     
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        for(int i=1;i<=n;i++) f[i][i][0]=1;
        for(int len=2;len<=n;len++)
        {
            for(int l=1;l<=n-len+1;l++)
            {
                int r=l+len-1;
                //  l从左边进去 
                if(a[l]<a[l+1]) f[l][r][0]+=f[l+1][r][0];
                if(a[l]<a[r])   f[l][r][0]+=f[l+1][r][1];
                //  r从右边进去
                if(a[r]>a[r-1]) f[l][r][1]+=f[l][r-1][1];
                if(a[r]>a[l])   f[l][r][1]+=f[l][r-1][0];
                f[l][r][1]%=mod;
                f[l][r][0]%=mod;
            }
        }
        cout<<(f[1][n][1]+f[1][n][0])%mod<<endl;
        return 0;
     } 
    
    评论

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 创建了问题 5月6日