题解链接

不过求ggg不用O(n2)DPO(n^2)DPO(n2)DP,g[n]g[n]g[n]直接就是卡特兰数的第n−1n-1n−1项。即:

g[n]=(2(n−1)n−1)−(2(n−1)n−2)g[n]=\binom{2(n-1)}{n-1}-\binom{2(n-1)}{n-2}g[n]=(n−12(n−1)​)−(n−22(n−1)​)

相当于在平面直角坐标系中,要从(0,0)(0,0)(0,0)走到(n,n)(n,n)(n,n),有一条线段y=x(x∈(0,n))y=x(x\in(0,n))y=x(x∈(0,n))不能触碰,注意是开区间。所以卡特兰数/组合数的计算方法就行了。

CODE

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 105;
int n, mod, g[MAXN], f[MAXN][MAXN][MAXN], fac[MAXN<<1], inv[MAXN<<1];
int C(int n, int m) { return m > n ? 0 : 1ll * fac[n] * inv[m] % mod * inv[n-m] % mod; }
int main(){
scanf("%d%d", &n, &mod);
fac[0] = inv[0] = inv[1] = fac[1] = 1;
for(int i = 2; i <= (n<<1); ++i){
fac[i] = 1ll * fac[i-1] * i %mod;
inv[i] = 1ll * (mod - mod/i) * inv[mod%i] % mod;
}
for(int i = 2; i <= (n<<1); ++i) inv[i] = 1ll * inv[i-1] * inv[i] % mod;
for(int i = 1; i <= n; ++i) g[i] = C(2*i - 2, i - 1) - C(2*i - 2, i - 2);
f[0][0][0] = 1;
for(int i = 0; i <= n; ++i)
for(int j = 0; j <= n; ++j) if(i || j) {
for(int k = max(0, i+j-n); k <= i && k <= j; ++k){
int &ret = f[i][j][k];
if(i && k) ret = (ret + 1ll * f[i-1][j][k-1] * (j-k+1)) % mod;
if(j && k) ret = (ret + 1ll * f[i][j-1][k-1] * (i-k+1)) % mod;
if(i) ret = (ret + 1ll * f[i-1][j][k] * (n - (i-1+j-k))) % mod;
if(j) ret = (ret + 1ll * f[i][j-1][k] * (n - (i+j-1-k))) % mod;
for(int d = 1; d <= k; ++d)
ret = (ret - 1ll * f[i-d][j-d][k-d] * C(n-(i+j-k-d), d) % mod * g[d] % mod * fac[d] % mod) % mod;
}
}
printf("%d\n", (f[n][n][n] + mod) % mod);
}

没做过这种类型的感觉好难。。

51nod 1843 排列合并机(DP+组合)的更多相关文章

  1. BZOJ4517 Sdoi2016 排列计数 【DP+组合计数】*

    BZOJ4517 Sdoi2016 排列计数 Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 ...

  2. 51nod 1250 排列与交换——dp

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 仔细思考dp. 第一问,考虑已知 i-1 个数有多少种方案. ...

  3. 51Nod 1250 排列与交换 —— DP

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 看了半天... 把第一问想成逆序对的话似乎很容易想了,新加入 ...

  4. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  5. hdu 4945 2048 (dp+组合的数目)

    2048 Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  6. 【BZOJ】2111: [ZJOI2010]Perm 排列计数 计数DP+排列组合+lucas

    [题目]BZOJ 2111 [题意]求有多少1~n的排列,满足\(A_i>A_{\frac{i}{2}}\),输出对p取模的结果.\(n \leq 10^6,p \leq 10^9\),p是素数 ...

  7. 51nod 1020 逆序排列 递推DP

    1020 逆序排列  基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么 ...

  8. 51Nod 1021 石子合并 Label:Water DP

    N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价.   例如: 1 2 3 4,有 ...

  9. 3.29省选模拟赛 除法与取模 dp+组合计数

    LINK:除法与取模 鬼题.不过50分很好写.考虑不带除法的时候 其实是一个dp的组合计数. 考虑带除法的时候需要状压一下除法操作. 因为除法操作是不受x的大小影响的 所以要状压这个除法操作. 直接采 ...

随机推荐

  1. [转帖]1A2C多口充 紫米USB充电器65W桌面快充版评测

    1A2C多口充 紫米USB充电器65W桌面快充版评测 2019年10月04日 07:48 1786 次阅读 稿源:充电头网 1 条评论 https://www.cnbeta.com/articles/ ...

  2. 【转帖】CRI-O 1.0 正式发布

    CRI-O 1.0 正式发布 http://www.sohu.com/a/200141920_465914 CRI-O 出来之后 docker 也就可有可无了 docker创造性的提出了 将依赖关系封 ...

  3. ABP中的本地化处理(上)

    今天这篇文章主要来总结一下ABP中的多语言是怎么实现的,在后面我们将结合ABP中的源码和相关的实例来一步步进行说明,在介绍这个之前我们先来看看ABP的官方文档,通过这个文档我们就知道怎样在我们的系统中 ...

  4. find程序实现

    一个简单的查找字符串匹配 #include <stdio.h> #include <string.h> #define MAXLINE 1000 int getline(cha ...

  5. 题目21 包含Min函数的栈

    ///////////////////////////////////////////////////////////////////////////////////// // 3. 题目21  包含 ...

  6. 1233: 输出杨辉三角前n行(Java)

    WUSTOJ 1233: 输出杨辉三角前n行 题目 原题链接 Description 输出杨辉三角前n行. Input 输入一个数n(n <= 9) Output 输出杨辉三角前n行.(注意行末 ...

  7. 【动态规划】Überwatch

    Überwatch 题目描述 The lectures are over, the assignments complete and even those pesky teaching assista ...

  8. Kubernetes 学习笔记(五):数据卷

    "数据卷"通常和"有状态"这个词同时出现,卷用于给有状态应用保存/共享状态. 常用的数据卷类型 1. emptyDir: 用于存储临时数据的空目录 emptyD ...

  9. (转)从0移植uboot(六) _实现网络功能

    ref:https://www.cnblogs.com/xiaojiang1025/p/6500532.html 为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于 ...

  10. hdu 6153 思维+扩展kmp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6153 扩展kmp不理解的看下:http://www.cnblogs.com/z1141000271/p ...