首页 / 客观题库

70266 - CSP-J第一轮同测模拟卷1-阅读程序3

题目(材料题)

01 #include <iostream>

02 using namespace std;

03

04 int dp[1005][1005];

05

06 int solve(int n, int m) {

07     if (m == 1) return n;

08     if (n == 0) return 0;

09     if (dp[n][m] != -1) return dp[n][m];

10     int res = 1e9;

11     for (int i=1; i<=n; i++) {

12         res = min(res, max(solve(n-i, m), solve(i-1, m-1)) + 1);

13     }

14     return dp[n][m] = res;

15 }

16

17 int main() {

18     int n, m;

19     cin >> n >> m;

20     for (int i=0;i<=n;i++) for (int j=0;j<=m;j++) dp[i][j] = -1;

21     cout << solve(n, m) << endl;

22     return 0;

23 }

||

该程序计算的是“扔鸡蛋问题”的经典动态规划解法。(    )

正确

错误

当 m=2 时,solve(n,2) 的值约为 ceil(sqrt(2n)) 级别的。(    )

正确

错误

若将 dp 数组初始化为 0 而不使用 -1,程序结果可能不正确。(    )

正确

错误

( 单选 )

当输入为 10 2 时,输出为(    )。

 

A 4

B 5

C 6

D 7

( 单选 )

(4分)当输入为 100 3 时,输出最接近(    )。

A 9

B 10

C 12

D 14

( 单选 )

关于递推式 res = min(res, max(solve(n-i, m), solve(i-1, m-1)) + 1); 的理解,错误的一项是?(   )

A 当在第 i 层扔鸡蛋且鸡蛋碎了,则问题转化为在 i-1 层用 m-1个鸡蛋求解

B 当在第 i 层扔鸡蛋且鸡蛋没碎,则问题转化为在 n-i 层用 m 个鸡蛋求解

C 取 max 是因为要保证最坏情况下的尝试次数,+1 表示本次扔鸡蛋的计数

D 取 min 是因为要选择最优的楼层 i,使得最坏尝试次数尽可能大

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36