矩阵乘法加括号问题

给定一个长度的字符串,很明显是可以加括号(矩阵乘法的结合律)
所以,一共有多少种加括号的方式呢?

给出了计算总共有多少这样组合
例如:
下面这个串,输入的长度为4。

ABCD

所有的加括号的可能就是

A(B(CD))
A((BC)D)
(AB)(CD)
(A(BC))D
((AB)C)D

所以说,输出的结果是5.

递归版本

#include <iostream>
using namespace std;
int f(int len);
int main() {int n;while (cin >> n && n) {cout << f(n) << endl;}
}int f(int len) {if (len == 1) return 1;int sum = 0;for (int i = 1; i < len; ++i) {sum += f(i) * f(len - i);}return sum;
}

输出结果:
在计算到21的时候就会出现问题了,不过估计是因为int整数型不够放的原因。

1
1
2
1
3
2
4
5
6
42
7
132
8
429
9
1430
10
4862
11
16796
12
58786
13
208012
14
742900
15
2674440
16
9694845
17
35357670
18
129644790
19
477638700
20
1767263190
21
-2025814172

进行递归转递推的修改。速度提高了非常多倍。

#include <iostream>
using namespace std;
int *f;
const int MAXSIZE = 1000;
void cal(int begin, int end);
int main() {int n, everN_MAX=0;f = new int[MAXSIZE];while (cin >> n && n) {if (n > everN_MAX) { cal(everN_MAX, n); }cout << f[n] << endl;}delete[] f;
}void cal(int begin, int end) {int i, j;for (i = begin; i <= end; i++) {if (i == 1) f[i] = 1;else {f[i] = 0;for (j = 1; j < i; ++j) f[i] += f[j] * f[i - j];}}
}

这个就简单多了,输出的结果试了试。

1
1
2
1
3
2
4
5
5
14
6
42
7
132
8
429
9
1430
10
4862
11
16796
12
58786
13
208012
14
742900
15
2674440
16
9694845
17
35357670
18
129644790
19
477638700
20
1767263190
21
-2025814172

字符串加括号问题(矩阵乘法组合问题)C++相关推荐

  1. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  2. 将矩阵转为一行_理解矩阵乘法

    理解矩阵乘法 考研需要考一门课<线性代数>,这门课其实是教矩阵. 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下. 矩阵乘法也类似,矩阵乘以一个常数,就是所有位置都乘以这个数. ...

  3. BZOJ4180: 字符串计数 SAM+矩阵乘法

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  4. 高等组合学笔记(五): 加括号问题,集合的分类问题,多项式恒等式的组合证明

    加括号问题 (Catalan数的其他组合解释) 凸多边形的三角剖分 c3=5c_3=5c3​=5,cn=1n+1(2nn)c_n=\frac1{n+1}\binom {2n}ncn​=n+11​(n2 ...

  5. [BZOJ]4180: 字符串计数 SAM+矩阵乘法+二分

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  6. 输出矩阵连乘所有的完全加括号形式

    例如说,有四个矩阵ABCD相乘,那么所有的完全加括号结果为(A((BC)D)) (A(B(CD))) ((AB)(CD)) (((AB)C)D) (A(BC))D).要求输出n个矩阵连乘所有的完全加括 ...

  7. python除号的乘法加括号_乘除法添加括号规则

    3. 乘.除法混合运算的性质 (1) 在乘.除混合运算中,被乘数.乘数或除数可以连同运算符号一 起交换位置. 例如, a × b ÷ c=a ÷ c × b=b ÷ c × a . (2) 在乘.除混 ...

  8. ncnn 框架分析 openmp多核加速 缓存 仿存 cache 快速矩阵乘法 单指令多数据指令SIMD

    ncnn 框架分析 本文github链接 博文末尾支持二维码赞赏哦 _ 在ncnn中建立新层 ncnn 下载编译使用 参考1 参考2 1. param 和 bin 文件分析 param 7767517 ...

  9. 【Android 应用开发】Paint 滤镜原理 之 颜色矩阵 ( 颜色模式 | 颜色通道 | 颜色矩阵 | 矩阵运算 | 矩阵乘法 | 矩阵加法 | 颜色矩阵深入解析 )

    文章目录 颜色模式 颜色通道 Android 中的颜色矩阵 矩阵乘法运算 滤镜中的矩阵乘法运算 矩阵加法运算 滤镜中的矩阵乘法运算 滤镜运算原理 ( 总结 ) 实际滤镜理论示例 颜色模式 颜色模式 : ...

最新文章

  1. 关于示波器地线的问题!
  2. 《深入理解java虚拟机》笔记1——Java内存区域与Java对象
  3. 互联网1分钟 |1219
  4. Codeforces Round #490 (Div. 3)
  5. python的特征提取实验一_在opencv3中使用ORB进行特征提取实验-Python版
  6. Abp框架准备加入.NET Foundation
  7. 在pycharm中自定义模板代码,快速输出固定代码块
  8. 如何给namedtuple添加docstring
  9. 专用集装箱行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. 细胞亚器文献阅读之酵母液泡与线粒体的动态互作A Dynamic Interface between Vacuoles and Mitochondria in Yeast
  11. vue 富文本编辑器wangeditor 上传图片
  12. win10局域网加入工作组计算机,Win10专业版加入局域网工作组的技巧
  13. 强大的头像制作神器微信小程序源码/支持外卖CPS等优惠劵小程序源码
  14. python爬取百度街景图像
  15. 电脑配置学习(台式机)
  16. 【安全算法】一文带你简要了解常见常用的安全算法
  17. Swagger-ui.html页面简单的修改
  18. 1077 互评成绩计算
  19. ilove中文_iLovePDF中文版
  20. 连续时间系统的时域分析

热门文章

  1. 安装RVDS2.2破解版
  2. 工作总结20190121
  3. linux/unix编程手册-56_60
  4. flex布局:子子元素过大撑开了设定flex:1的子元素的解决方案
  5. 作为一枚学生党,如何提升自己华丽转身
  6. Spring基于Java的JSR-250注解
  7. 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行...
  8. 企业如何测试邮件系统反垃圾反病毒的实际效果
  9. 悬赏200积分征集cisco7505多线路负载均衡方案
  10. 监督学习应用与梯度下降