首页 / 客观题库

80092 - 2026挑战赛入门组46-50

题目(材料题)

给定不同面额的硬币和一个总金额,每种硬币可以使用无限次。求使用硬币组成总金额所需的最少硬币个数。如果无法组成总金额,返回-1。

 

01 #include <iostream>

02 #include <cstring>

03 #include <algorithm>

04 using namespace std;

05

06 const int M = 10005;

07 const int INF = ① ;

08

09 int glod[105];

10 int dp[M];

11

12 int main() {

13     int n, money;

14     cin >> n >> money;

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

16         cin >> glod[i];

17     }

18     memset(dp, INF, sizeof(dp));

19     ②;

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

21         ③{

22             if (dp[j - glod[i]] != INF) {

23                 dp[j] =④;

24             }

25         }

26     }

27     int ans = ⑤;

28     if (ans == INF)

29         ans = -1;

30     cout << ans << endl;

31     return 0;

32 }

||
( 单选 )

① 处应填

A -1

B 0

C 0x3f

D 0x3f3f3f3f

( 单选 )

② 处应填

A dp[0] = 0

B dp[0] = 1

C dp[0] = INF

D dp[0] = -1

( 单选 )

③ 处应填

A for (int j = money; j >= glod[i]; j--)

B for (int j = glod[i]; j <= money; j+)

C for (int j = glod[i]; j <= money; j+=money)

D for (int j = glod[i]; j <= money; j+= glod[i])

( 单选 )

④ 处应填

A min(dp[j], dp[j - glod [i]] + 1)

B max(dp[j], dp[j - glod [i]] + 1)

C dp[j - glod [i]] + 1

D dp[j] + 1

( 单选 )

⑤ 处应填

A dp[n]

B dp[0]

C dp[money]

D dp[money-n]

意见反馈

    最多上传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