下面的程序中,二维数组 h 和 v 分别代表如下图所示的网格中的水平边的时间消耗和垂直边的时间消耗。程序使用动态规划计算从左下角到右上角的最小时间消耗,则横线处应该填写下列哪个选项的代码?( )

mm075168 单选题 共 个子题
dis[3][0]—h[3][0]—dis[3][1]—h[3][1]—dis[3][2]—h[3][2]—dis[3][3]
  v[2][0]    v[2][1]    v[2][2]    v[2][3]
dis[2][0]—h[2][0]—dis[2][1]—h[2][1]—dis[2][2]—h[2][2]—dis[2][3]
  v[1][0]    v[1][1]    v[1][2]    v[1][3]
dis[1][0]—h[1][0]—dis[1][1]—h[1][1]—dis[1][2]—h[1][2]—dis[1][3]
  v[0][0]    v[0][1]    v[0][2]    v[0][3]
dis[0][0]—h[0][0]—dis[0][1]—h[0][1]—dis[0][2]—h[0][2]—dis[0][3]
int dis[MAXY][MAXX];
int shortest_path(int x, int y) {
    dis[0][0] = 0;
    for (int i = 0; i < y; i++)
        dis[i + 1][0] = dis[i][0] + v[i][0];
    for (int j = 0; j < x; j++)
        dis[0][j + 1] = dis[0][j] + h[0][j];
    for (int i = 0; i < y; i++)
        for (int j = 0; j < x; j++)
            ______; // 在此处填写代码
    return dis[y][x];
}
A

dis[i][j] = min(dis[i - 1][j] + v[i - 1][j], dis[i][j - 1] + h[i][j - 1]);

B

dis[i][j] = min(dis[i - 1][j] + h[i - 1][j], dis[i][j - 1] + v[i][j - 1]);

C

dis[i + 1][j + 1] = min(dis[i][j + 1] + v[i][j + 1], dis[i + 1][j] + h[i + 1][j]);

D

dis[i + 1][j + 1] = min(dis[i][j + 1] + h[i][j + 1], dis[i + 1][j] + v[i + 1][j]);

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧