第22612题 单选题
给定C++实现的石子合并动态规划函数,选择其对应的状态转移方程
int s[MAX_N], f[MAX_N][MAX_N];
int stone_merge(int n, int a[]) {
    for (int i = 1; i <= n; i++)
        s[i] = s[i - 1] + a[i];
    for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
        if (i == j)
            f[i][j] = 0;
        else
            f[i][j] = MAX_F;
    for (int l = 1; l < n; l++)
        for (int i = 1; i <= n - l; i++) {
            int j = i + l;
            for (int k = i; k < j; k++)
                f[i][j] = min(f[i][j], f[i][k] + f[k + 1][j] + s[j] - s[i - 1]);
        }
    return f[1][n];
}
A

$f(i,j) = \min_{i \leq k < j} \left( f(i,j), f(i,k) + f(k+1,j) + s(j) - s(i-1) \right)$

B

$f(i,j) = \min{i \leq k < j} \left( f(i,j), f(i,k) + f(k+1,j) + \sum{k=i}^j a(k) \right)$

C

$f(i,j) = \min{i \leq k \leq j} \left( f(i,k) + f(k+1,j) + \sum{k=i}^{j+1} a(k) \right)$

D

$f(i,j) = \min{i \leq k < j} \left( f(i,k) + f(k+1,j) \right) + \sum{k=i}^j a(k)$

程序运行统计
暂无判题统计