注意:本题为提交答案题,你只在代码里包含答案就行。例如你的答案是 ABC ,那么你提交的代码是
ABC。
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 A,错误填 B)
第 1 题 $\textsf{ }$
1 #include <algorithm>
2 #include <iostream>
3 #include <vector>
4 using namespace std;
5
6 const int M = 17;
7 vector<unsigned> egg[1 << M];
8 int dp[1 << M];
9
10 int solve(int H) {
11 int ans = 0;
12 for(auto to : egg[H])
13 ans = max(ans, dp[to] + 1);
14 return ans;
15 }
16
17 int main() {
18 int n, m;
19 cin >> n >> m;
20 while(m--)
21 {
22 int a, b;
23 cin >> a >> b;
24 if(a > b)
25 swap(a, b);
26 egg[b].push_back(a);
27 }
28 for(int i = 1; i <= n; ++i)
29 dp[i] = max(dp[i - 1], solve(i));
30 cout << dp[n] << endl;
31 return 0;
32 }
假设输入的 $a,b$ 满足 $1 \le a,b \le n$。
判断题
1.假设数组 egg 和 dp 长度无限制,则整个算法的时间复杂度为 $O(nm)$。( )
2.当输入为 5 2 4 1 2 5 时,输出为 1。( )
3.整个算法的输出值不会超过 $n-1$。( )
选择题
4.当输入为 9 5 1 8 7 2 5 3 6 4 7 9 时,输出为?( )
A.1 $\text{ }$ B.2 $\text{ }$ C.3 $\text{ }$ D.4
5.如果删去第 24 和 25 行的代码,输出结果将( )。
A.不会变大 $\text{ }$ B.不变 $\text{ }$ C.不确定 $\text{ }$ D.不会变小
6.该代码实现的问题还能用以下哪种算法实现?( )
A.Dijkstra $\text{ }$ B.贪心 $\text{ }$ C.倍增 $\text{ }$ D.差分

鲁ICP备2025150228号