#CS40801. 阅读程序8-动态规划1
阅读程序8-动态规划1
阅读程序
注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。
第8节:动态规划
第1题【NOIP】2013
#include <iostream>
using namespace std;
int main() {
04 const int SIZE = 100;
int height[SIZE], num[SIZE], n, ans;
06 scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &height[i]);
num[i] = 1;
for (int j = 0; j < i; j++) {
11 if ((height[j] < height[i]) && (num[j] >= num[i]))
num[i] = num[j]+1;
}
}
ans = 0;
for (int i = 0; i < n; i++) {
if (num[i] > ans) ans = num[i];
}
printf("%d\n", ans);
return 0;
}
●判断题
(1)将第4行的程序移动到第2、3行中间,程序能够正常运行
{{ select(1-1) }}
- 正确
- 错误
(2)第6行输入n=5,则输出ans的值一定小于5
{{ select(1-2) }}
- 正确
- 错误
(3)把01行的iostream改为cstdio时不会编译错误。
{{ select(1-3) }}
- 正确
- 错误
(4)如果输出是1,则height数组中的数一定是递减的。
{{ select(1-4) }}
- 正确
- 错误
●选择题
(5)当n=6时,输入height数组为2 5 3 11 12 4,输出为.。
{{ select(1-5) }}
- 4
- 2
- 14
- 6
《6)如果将第11行的height[j]<height[i]改成height[j]>height[i],则第(5)题的输出结果为( )。。
{{ select(1-6) }}
- 4
- 2
- 14
- 6