
动态规划
K.Irving
这个作者很懒,什么都没留下…
展开
-
最大字段和 动态规划
求数组a的最大字段和定义一个数组bb[i]表示截止到第i个数的最大字段和那么我们知道如果b[i-1]<=0,b[i]的值应该为a[i]如果b[i-1]>0,b[i]的值应该是b[i-1]+a[i]int maxsum(int n, int *a){ int sum = 0, b = 0; for (int i = 1; i <= n; i++) { if (b > 0) b += a[i]; else b = a[i]; if (b > su原创 2021-01-08 10:27:54 · 259 阅读 · 0 评论 -
最长公共子序列 动态规划
void lcslength(int m, int n, char *x, char *y, int **c, int **b){ int i, j; for (i = 1; i <= m; i++) //c[i][j]记录序列xi和yj的最长公共子序列长度 c[i][0] = 0; for (j = 1; j <= n; j++) c[0][j] = 0; for (i = 1; i <= m; i++) { for (j = 1;原创 2021-01-08 09:57:59 · 165 阅读 · 0 评论 -
矩阵连乘 动态规划
void martixchain(int *p, int n, int **m, int **s){ for (int i = 1; i <= n; i++) //m[i][j]表示A[i:j]所需要的最小数乘次数,自己乘自己为0 m[i][i] = 0; for (int r = 1; r <= n; r++) //控制i和j的距离 { for (int i = 1; i <=n-r:i++ ) j = i + r;原创 2021-01-08 09:08:05 · 214 阅读 · 0 评论