#CS40303. 阅读程序3-枚举算法3
阅读程序3-枚举算法3
阅读程序
注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。
第3节:枚举算法
第3题【NOIP】2017
#include<iostream>
using namespace std;
int main(){
string ch;
int a[200];
int b[200];
int n, i, t, res;
cin >> ch;
n = ch.length();
10 for (i = 0; i < 200; i++)
11 b[i] = 0;
for (i = 1; i <= n; i++){
a[i] = ch[i - 1] - '0';
b[i] = b[i - 1] + a[i];
}
res = b[n];
t = 0;
for (i = n; i > 0; i--){
if (a[i] == 0)
t++;
if (b[i - 1] + t < res)
res = b[i - 1] + t;
}
cout << res << endl;
return 0;
}
●判断题
(1)输入的字符串长度必须小于等于200,否则可能会出现运行时错误。
{{ select(3-1) }}
- 对
- 错
(2)若输入字符串为1001101011001101101011110001,则会输出12。
{{ select(3-2) }}
- 对
- 错
(3)去掉第10行和第11行,程序一定可以正常运行。
{{ select(3-3) }}
- 对
- 错
(4)输入的字符串必须由01字符组成。
{{ select(3-4) }}
- 对
- 错
●选择题
(5)程序的时间复杂度为( )。
{{ select(3-5) }}
- O(1)
- O(nlogn)
- O(n)
- O()
(6)若输人1010405010401090109080100,输出为()。
{{ select(3-6) }}
- 0
- 5
- 26
- 13
相关
在以下作业中: