规定长度的上升子序列的个数

来源:互联网 发布:打码平台网站源码 编辑:程序博客网 时间:2024/05/04 08:36

给定一个长度为n的序列(n <= 100) ,给定m(m <= n),求该序列中有多少值不相同的长度为m的严格上升子序列。

原始数据储存在数组a[]里面,用dp[i][j]表示以i为结尾的长度为j的上升子序列的个数,在满足a[k]<a[i]的情况下,dp[i][j] += dp[k][j-1],需要注意的是中间要取模。

因为要求值不同,所以a:1 2 2 4 时,a[1] a[2] a[4]与a[1] a[3] a[4]是相同情况(设下标从1开始),所以用一个 vis[] 数组标记这个数是否用过。

#include<iostream>#include<cstring>#define maxn 105#define mod 1000000007using namespace std;int dp[maxn][maxn];int num[maxn];int vis[maxn];int main(){    int T;    cin>>T;    while(T>0)    {        T--;        int n, m;        cin>>n>>m;        memset(dp,0,sizeof(dp));        memset(vis,0,sizeof(vis));        for(int i=1; i<=n; i++)        {            cin>>num[i];            dp[i][1]=1;        }        for(int i=2; i<=n; i++)        {            for(int j=1; j<=n; j++)            {                for(int k=i-1; k>=1; k--)                {                    if(num[i]>num[k]&&!vis[num[k]])                    {                        vis[num[k]]=1;                        dp[i][j]+=dp[k][j-1];                        dp[i][j]%=mod;                    }                    memset(vis,0,sizeof(vis));                }            }        }        memset(vis,0,sizeof(vis));        int ans=0;        for(int i=n; i>=1; i--)        {            if(vis[num[i]])                continue;            vis[num[i]] = 1;            ans += dp[i][m];            ans %= mod;        }        cout<<ans<<endl;    }    return 0;}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二十天的宝宝伤风鼻子不通怎么办 一个多月的宝宝鼻子有鼻屎怎么办 2个月宝宝鼻子里有鼻屎怎么办 四个月婴儿感冒发烧怎么办 一个月婴儿感冒发烧怎么办 五个月婴儿感冒发烧怎么办 两个月的婴儿感冒发烧怎么办 9个月婴儿感冒发烧怎么办 两个月婴儿感冒鼻塞咳嗽怎么办 两个月婴儿感冒咳嗽流鼻涕怎么办 小孩感冒发烧怎么办速效办法 宝宝打喷嚏流清鼻涕怎么办 宝宝感冒流清鼻涕怎么办 2岁感冒流清鼻涕怎么办 小孩感冒流清鼻涕怎么办 4岁宝宝半夜发烧怎么办 四岁宝宝免疫力低下怎么办 两岁宝宝咳嗽流鼻涕怎么办 小婴儿流清鼻涕怎么办 14个月宝宝流鼻涕怎么办 小孩一直流黄鼻涕怎么办 咳嗽有痰 浓鼻涕怎么办 儿童鼻窦炎总反复流脓鼻涕怎么办? 宝宝感冒咳嗽流黄鼻涕怎么办 哺乳期感冒流清鼻涕怎么办 哺乳期打喷嚏流清鼻涕怎么办 哺乳期妈妈感冒流清鼻涕怎么办 哺乳期严重流清鼻涕怎么办 小孩每天都是脓鼻涕怎么办 夏天小孩咳嗽流黄脓鼻涕怎么办? 受凉了流清鼻涕怎么办 宝宝50多天鼻塞怎么办 50多天孩子咳嗽怎么办 2岁宝宝伤风鼻塞怎么办 2个月伤风鼻塞怎么办 3个月宝宝鼻塞怎么办 感冒治好后咳嗽一直不好怎么办 天气太热感冒了怎么办 3个月的婴儿鼻塞怎么办 四个月宝宝感冒鼻塞严重怎么办 4个月小孩鼻塞怎么办