题库 信息学奥赛题库 题目列表 假设输入的 n、m 均是不超过 100&nbsp...
组合题

假设输入的 n、m 均是不超过 100 的正整数,完成下面的判断题和单选题:

#include <algorithm>
 #include <iostream>
 #include <limits>
 using namespace std;
 const int MAXN = 105;
 const int MAXK = 105;
 int h[MAXN][MAXK];
 int f(int n,int m)
 {
     if (m==1) return n;
     if (n==0) return 0;
     int ret = numeric_limits<int>::max();
     for (int i=1;i<=n;i++)
         ret = min(ret,max(f(n-i,m),f(i-1,m-1))+1);
     return ret;
}
int g(int n, int m)
{
    for (int i = 1; i <= n; i++) 
        h[i][1] = i;
    for (int j = 1; j <= m; j++) 
        h[0][j] = 0; 
    for (int i = 1; i <= n; i++) { 
        for (int j = 2; j <= m; j++) {
            h[i][j] = numeric_limits<int>::max();
            for (int k = 1; k <= i; k++)
            h[i][j] = min(
                h[i][j],
                max(h[i - k][j], h[k - 1][j - 1]) + 1); 
        }
    }
    return h[n][m];
    } 
int main() 
{ 
    int n, m;
    cin >> n >> m;
    cout << f(n, m) << endl << g(n, m) << endl; 
    return 0;
}
第1题 判断

当输入为7,3时,第19行采用来去最小值的min函数执行了449次

A.
正确
B.
错误
第2题 判断
输出的两行整数总是相同的
A.
正确
B.
错误
第3题 判断

当m为1时,输出的第一行总为n

A.
正确
B.
错误
第4题 单选

算法g(n,m)最为准确的时间复杂度分析结果为

A.

𝑂(𝑛3/2𝑚)

B.

𝑂(𝑛𝑚)

C.

𝑂(𝑛2𝑚)

D.

𝑂(𝑛𝑚2)

第5题 单选
若输入数据为“20 2”,输出的第一行为
A.

4

B.

5

C.

6

D.

20

第6题 单选
当输入为“100 100”时,输出的第一行为
A.

6

B.

7

C.

8

D.

9

题目信息
阅读程序 2022年 初赛
-
正确率
0
评论
172
点击