???HDU4689???Derangement??????????????????

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了???HDU4689???Derangement??????????????????相关的知识,希望对你有一定的参考价值。

?????????code   ??????   cst   number   char   http   ??????   ??????   ==   

???HDU4689???Derangement??????????????????

??????

Vjudge
????????????(+-)??????????????????????????????(n)???
?????????(i)??????(+)?????????(p_i>i)?????????(p_i<i)
????????????????????????([1,n])??????????????????

??????

????????????????????????(p_i<i)???????????????(RabbitNumbering)???
??????????????????????????????????????????????????????
??????????????????(+)?????????????????????????????????????????????????????????????????????(RabbitNumbering)????????????????????????????????????
????????????????????????????????????
?????????????????????
??????????????????????????????????????????(f[i][j])????????????????????????(i)???????????????(j)???(+)????????????
?????????????????????(+)?????????????????????
????????????????????????(i)?????????????????????(+)??????????????????????????????
????????????????????????????????????(-)??????
???????????????????????????(-)?????????????????????????????????
????????????????????????(j)???(+)????????????(j)???????????????????????????(-)?????????????????????
????????????????????????(i)???????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????

#include<cstdio>
#include<cstring>
#define ll long long
ll f[22][22];
char ch[22];
int n;
int main()
{
    while(scanf("%s",ch+1)!=EOF)
    {
        n=strlen(ch+1);memset(f,0,sizeof(f));f[0][0]=1;
        for(int i=1;i<=n;++i)
            if(ch[i]=='+')
                for(int j=1;j<=i;++j)f[i][j]=f[i-1][j-1]+f[i-1][j]*j;
            else
                for(int j=0;j<=i;++j)f[i][j]=f[i-1][j+1]*(j+1)*(j+1)+f[i-1][j]*j;
        printf("%lld
",f[n][0]);
    }
}

以上是关于???HDU4689???Derangement??????????????????的主要内容,如果未能解决你的问题,请参考以下文章

HDU4689Derangement (动态规划)

HDU2196 Computer(树形DP)

TOJ 4689: Sawtooth

SDUT 2021 Winter Individual Contest - N(B-Derangement)

634. Find the Derangement of An Array

Gym 100971B Derangement