矩阵链乘法
来源:互联网 发布:浙大教务网络管理系统 编辑:程序博客网 时间:2024/05/26 05:51
动态规划之矩阵链乘法。。。
#include <iostream>using namespace std;int columns[] = {30, 35, 15, 5, 10, 20, 25};const int size = sizeof columns / sizeof *columns;int m[size][size];int s[size][size];void getChainOrder(int *columns, int size){if (columns == NULL || size <= 0)return;for (int i = 1; i <= size; i++)m[i][i] = 0;for (int l = 2; l <= size; l++){for (int i = 1; i <= size - l + 1; i++){int j = i + l - 1;m[i][j] = 65535;for (int k = i; k <= j; k++){int q = m[i][k] + m[k + 1][j] + columns[i - 1] * columns[k] * columns[j];if (q < m[i][j]){m[i][j] = q;s[i][j] = k;}}}}}void print(){for (int i = 1; i <= size - 1; i++){for (int j = 1; j <= size - 1; j++)cout << m[i][j] << '\t';cout << endl;}}void printResult(int i = 1, int j = size){if (i == j)cout << "A" << i;else{cout << "(";printResult(i, s[i][j]);printResult(s[i][j] + 1, j);cout << ")";}}void main(){cout << "size = " << size << endl;getChainOrder(columns, size);print();cout << "m[0][5] = " << m[1][6] << endl;printResult();}
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 15.2 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 【DP】矩阵链乘法
- 矩阵链乘法
- 矩阵链乘法
- 链矩阵乘法
- Mysql show用法以及慢查询日志的开启
- Mysql 索引优化
- Linux内核驱动之Input子系统设备驱动层
- java的cglib动态代理报java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter
- POJ 3177(带重边的连通图的双连通分量)
- 矩阵链乘法
- Mysql memory表引擎
- ZOJ3643 Keep Deleting
- WCF双工通信
- mysql-replication数据库同步
- 彩影ARP防火墙 v6.0.2(x64)的问题 错误代码1/0 解决方案
- 写给刚入职场的你
- 鸟菜基础篇_2012_8_26序列化
- MySql 远程连接中phpmyadmin的设置