题型:组合题
阅读程序(2)
#include <iostream>
#include <vector>
using namespace std;
int compute(vector<int> &cost) {
int n = cost.size();
vector<int> dp(n + 1, 0);
dp[1] = cost[0];
for (int i = 2; i <= n; i++) {
dp[i] = min(dp[i - 1], dp[i - 2]) + cost[i - 1];
}
return min(dp[n], dp[n - 1]);
}
int main() {
int n;
cin >> n;
vector<int> cost(n);
for (int i = 0; i < n; i++) {
cin >> cost[i];
}
cout << compute(cost) << endl;
return 0;
} (1).如果输入的 cost 数组为{10,15,30,5,5,10,20},程序的输出为( )
| A. "25" |
B. "30" |
| C. "35" |
D. "40" |
若将代码中的 min(dp[i-1],dp[i-2])+cost[i-1]修改为 dp[i-1]+cost[i-2],输入 cost 数组为{5,10,15}时,程序的输出为( )
| A. "10" |
B. "15" |
| C. "20" |
D. "25" |
当输入的 cost 数组为{10,15,20}时,程序的输出为 15( )
| A.正确 | B.错误 |
程序总是输出 cost 数组种的最小的元素( )
| A.正确 | B.错误 |
如果将 dp[i-1]改为 dp[i-3],程序可能会产生编译错误( )
| A.正确 | B.错误 |
当输入的 cost 数组为{1,100,1,1,1,100,1,1,100,1}时,程序的输出为( )。
| A. “6” |
B. “7” |
| C. “8” |
D. ”9” |
更新时间:2025-01-16 12:40:41
|
【知识点】
CCF非专业级别软件能力认证CSP-J/入门级
抱歉! 您未登录, 不能查看答案和解析点击登录











