#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;}当输入的 cost 数组为 时,程序的输出为 。( )
如果将 dp[i-1] 改为 dp[i-3],程序可能会产生编译错误。( )
(2 分)程序总是输出 cost 数组中最小的元素。( )
当输入的 cost 数组为 时,程序的输出为( )。
(4 分)如果输入的 cost 数组为 ,程序的输出为( )。
若将代码中的 min(dp[i-1], dp[i-2]) + cost[i-1] 修改为 dp[i-1] + cost[i-2],输入 cost 数组为 时,程序的输出为( )。