1921_算法设计例题:装载问题(回溯、分枝限界)

2022-5-16 18:17| 发布者: Hocassian| 查看: 41| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-3-89504148771600-Problem List-采集的数据-后羿采集器.html

Pro.ID

1921

Title

算法设计例题:装载问题(回溯、分枝限界)

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1921

AC

358

Submit

1238

Ratio

28.92%

时间&空间限制

  • Time Limit: 1000/500 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others)
  • 描述

    有一批概共n个集装箱要装上两艘载重量分别为c1c2的轮船,其中,集装箱i的重量为wi,且

    装载问题要求确定是否有一个合理的装载方案可将这n个集装箱装上这两艘轮船。

    输入

    输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是集装箱个数nn ≤ 20 ),第二行是两个整数c1c2,表示两艘轮船的载重量,接下来n行,每行一个整数wi,表示第i个集装箱的重量,( 0 < wi < 1000,i = 1, 2, …, n, 0 < c1, c2 < 30000 )

    输出

    Description

    有一批概共n个集装箱要装上两艘载重量分别为c1c2的轮船,其中,集装箱i的重量为wi,且

    装载问题要求确定是否有一个合理的装载方案可将这n个集装箱装上这两艘轮船。

    Input

    输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是集装箱个数nn ≤ 20 ),第二行是两个整数c1c2,表示两艘轮船的载重量,接下来n行,每行一个整数wi,表示第i个集装箱的重量,( 0 < wi < 1000,i = 1, 2, …, n, 0 < c1, c2 < 30000 )

    Output

    对应每个测试样例输出两行,第一行格式为"Case #:",其中'#'表示第几个测试样例(从1开始计)。

    第二行格式为:如果找不到合理的装载方案,则输出"No",否则输出最优载重量。

    Sample Input

    2
    3
    50 50
    10 40 40
    3
    50 50
    20 40 40

    Sample Output

    Case 1:
    50
    Case 2:
    No

    Hint

    容易证明,如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案:
    1. 首先将第一艘轮船尽可能装满;
    2. 将剩余的集装箱装上第二艘轮船。

    Author

    样例输入

    2
    3
    50 50
    10 40 40
    3
    50 50
    20 40 40

    样例输出

    Case 1:
    50
    Case 2:
    No

    提示

    容易证明,如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案:
    1. 首先将第一艘轮船尽可能装满;
    2. 将剩余的集装箱装上第二艘轮船。

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部