zoukankan      html  css  js  c++  java
  • P1108 低价购买——最长下降子序列+方案数

    P1108 低价购买

    最长下降子序列不用多讲;关键是方案数;

    在求出f[i]时,我们可以比较前面的f[j];

    如果f[i]==f[j]&&a[i]==a[j] 要将t[j]=0,去重;

    这样将所有t[j]加起来就是方案数;

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn=5010;
    
    int n;
    
    int f[maxn],t[maxn];
    
    int  a[maxn];
    
    int ma;
    
    int ans1,ans2;
    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++)
            {
                if(a[j]>a[i])
                {
                    f[i]=max(f[i],f[j]+1);
                }
            }
            if(!f[i]) f[i]=1;
            if(f[i]>ma) ma=f[i];
            for(int j=1;j<i;j++)
            {
                if(f[i]==f[j]&&a[i]==a[j])
                {
                    t[j]=0;
                }
                else if(f[i]==f[j]+1&&a[i]<a[j])
                {
                    t[i]+=t[j];
                }
            }
            if(!t[i]) t[i]=1;
        }
        
        for(int i=1;i<=n;i++)
        {
            if(f[i]==ma) 
            {
                ans2+=t[i];
            }
        }
        
        printf("%d %d",ma,ans2);
        return 0;
    }
    View Code
  • 相关阅读:
    ubuntu 16.04 安装显卡驱动,再安装cuda
    8. golang 基本类型转换
    7.golang的字符串 string
    5. 变量定义
    4. 代码规范
    3.golang 的注释
    1.windows server 201x
    exec 命令
    powershell
    1.Dockerfile
  • 原文地址:https://www.cnblogs.com/WHFF521/p/11750246.html
Copyright © 2011-2022 走看看