1 -> {}

2 -> []

3 -> ()

\(f[d][a][b][c]\)

表示 \([i * 2 - 1, j * 2]\) 这段区间 深度为 d

\(1\) 有 \(a\) 个, \(2\) 有 \(b\) , \(3\) 有 \(c\) 个

初始状态

\(f[1][0][0][1] = 1;\)

\(f[1][0][1][0] = 1;\)

\(f[1][1][0][0] = 1;\)

操作1:用 () 括起来

需满足: \(a = 0\) 且 \(b = 0\)

\(f[d][a][b][c] += f[d - 1][a][b][c - 1]\)

操作2:用 [] 括起来

需满足:\(a = 0\)

\(f[d][a][b][c] += f[d - 1][a][b - 1][c]\)

操作3:用 {} 括起来

\(f[d][a][b][c] += f[d - 1][a - 1][b][c]\)

合并 (枚举第一个括号)

#include <cstdio>
#include <iostream>
using namespace std;
const int S = 35, L = 11, P = 11380;
int L1, L2, L3, D, f[S][L][L][L], s[S][L][L][L];
int main() {
scanf("%d%d%d%d", &L1, &L2, &L3, &D);
s[0][0][0][0] = f[0][0][0][0] = 1;
for (int d = 1; d <= D; d++) {
for (int a = 0; a <= L1; a++) {
for (int b = 0; b <= L2; b++) {
for (int c = 0; c <= L3; c++) {
if (a) (f[d][a][b][c] += f[d - 1][a - 1][b][c]) %= P;
else if(b) (f[d][a][b][c] += f[d - 1][a][b - 1][c]) %= P;
else if(c) (f[d][a][b][c] += f[d - 1][a][b][c - 1]) %= P; for (int a1 = 0; a1 <= a; a1++) {
for (int b1 = 0; b1 <= b; b1++) {
for (int c1 = 0; c1 <= c; c1++) {
if (a1 + b1 + c1 == 0) continue;
if (a1 + b1 + c1 == a + b + c) continue;
if (a1) {
if (d >= 2) (f[d][a][b][c] += s[d - 2][a1 - 1][b1][c1] * f[d][a - a1][b - b1][c - c1]) %= P;
(f[d][a][b][c] += f[d - 1][a1 - 1][b1][c1] * s[d][a - a1][b - b1][c - c1]) %= P;
} else if (b1) {
if (d >= 2) (f[d][a][b][c] += s[d - 2][a1][b1 - 1][c1] * f[d][a - a1][b - b1][c - c1]) %= P;
(f[d][a][b][c] += f[d - 1][a1][b1 - 1][c1] * s[d][a - a1][b - b1][c - c1]) %= P;
} else {
if (d >= 2) (f[d][a][b][c] += s[d - 2][a1][b1][c1 - 1] * f[d][a - a1][b - b1][c - c1]) %= P;
(f[d][a][b][c] += f[d - 1][a1][b1][c1 - 1] * s[d][a - a1][b - b1][c - c1]) %= P;
}
}
}
}
s[d][a][b][c] = (s[d - 1][a][b][c] + f[d][a][b][c]) % P;
} }
}
}
printf("%d\n", f[D][L1][L2][L3]);
return 0;
}

AcWing 317. 陨石的秘密的更多相关文章

  1. Genotype&&陨石的秘密

    Genotype: Genotype 是一个有限的基因序列.它是由大写的英文字母A-Z组成,不同的字母表示不同种类的基因.一个基因可以分化成为一对新的基因.这种分化被一个定义的规则集合所控制.每个分化 ...

  2. poj[1187][Noi 01]陨石的秘密

    Description 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科 ...

  3. POJ 1187 陨石的秘密 (线性DP)

    题意: 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科学家们发现陨石上 ...

  4. [POJ1187] 陨石的秘密

    问题描述 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科学家们发现陨石 ...

  5. 【POJ1187】陨石的秘密

    题目大意: 定义一个串:只含有 '( )','[ ]','{ }',3种(6个)字符. 定义 SS 串: 空串是SS表达式. 若A是SS表达式,且A串中不含有中括号和大括号,则(A)是SS表达式. 若 ...

  6. 题解 【POJ1187】 陨石的秘密

    解析 考虑到数据范围,其实我们可以用记搜. 设\(f[a][b][c][d]\)表示还剩\(a\)个'{}',\(b\)个"[]",\(c\)个"()",深度\ ...

  7. 别人整理的DP大全(转)

    动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...

  8. dp题目列表

    此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...

  9. dp式子100个……

    1.        资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2------01背包问题F[I,j]:=max(f[i- ...

随机推荐

  1. Django启动服务的流程

    我晕,启动个服务浪费快一个小时的时间,记录下步骤吧. 1.D:\django\newworld>python manage.py runserver Performing system chec ...

  2. 04、MyBatis DynamicSQL(Mybatis动态SQL)

    1.动态SQL简介 动态 SQL是MyBatis强大特性之一. 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似. MyBatis 采用功能强大的基于 OGNL 的表达式来 ...

  3. android下vulkan与opengles纹理互通

    先放demo源码地址:https://github.com/xxxzhou/aoce 06_mediaplayer 效果图: 主要几个点: 用ffmpeg打开rtmp流. 使用vulkan Compu ...

  4. 解决docker镜像无vim

    docker拉取的镜像一般都是ubantu系统 安装vim apt-get update apt-get vim

  5. div定时放大缩小

    <!DOCTYPE html> <html> <head> <style> .anim{ width: 100px; height: 100px; ba ...

  6. Mac插件太多太乱怎么办?CleanMyMac直接帮你搞定!

    电脑应用插件在一定程度上便利了大家的生活,保障了用户的使用安全,比如Flash插件.浏览器翻译插件.银行安全登录插件等等.但是许多的插件并不能定位安装的位置,同时部分插件,大部分时候都是只使用一次的, ...

  7. xcode6新建pch文件过程

    h1, h2, h3, h4, h5, h6, p, blockquote { margin: 0; padding: 0 } body { font-family: "Helvetica ...

  8. MySQL的两种日志类型,redo log,binlog

    文章内容学习:极客时间-林晓彬老师-MySQL实战45讲 整理而得 我们知道MySQL数据库在发生意外宕机的情况下,可以将数据恢复到历史的某个时间点,能实现这个功能依靠的是日志,MySQL提供两种类型 ...

  9. 通过weakHashMap避免过期引用导致的内存泄漏

    问题由来 数组为基础实现的集合在退出元素时,并不会将引用指向空指针,过期引用存在对象便不会被回收. 措施 1.WeakHashMap当其中的key没有再被外部引用时,就会被回收.ThreadLocal ...

  10. 锐安信sslTrus与GeoTrust SSL证书的对比

    当您想要为您的网站购买一款SSL证书时,是不是既想要价格便宜,又想要安全性能服务好的证书,最后又在品牌上犹豫不决?如何选择SSL证书?哪款SSL证书是最适合您的?本文将详细对比分析锐成信息平台上畅销品 ...