【发布时间】:2021-11-20 02:04:53
【问题描述】:
考虑以下问题:
Searcy Wood Shop 的世界著名摇椅(每个订单 1 把)的订单积压。制作一把椅子所需的总时间为 1 周。但是,由于椅子在不同的地区和不同的市场销售,每个订单的利润金额可能会有所不同。此外,每个订单都有一个截止日期。公司只有在截止日期前才能赚取利润;否则,利润为 0。 编写一个程序来确定最大化利润的订单的最佳时间表。
测试用例的第一行将包含一个整数 n (0 ≤ n ≤ 1000),表示待处理订单的数量。 n 的值为 0 表示输入文件的结尾。 接下来的 n 行每行包含 3 个正整数。第一个整数 i 是订单号。给定测试用例的所有订单号都是唯一的。第二个整数表示从现在到订单号 i 的截止日期的周数。第三个整数表示如果订单号 i 在截止日期前,公司将获得的利润金额。
示例输入:
7
1 3 40
2 1 35
3 1 30
4 3 25
5 1 20
6 3 15
7 2 10
4
3054 2 30
4099 1 35
3059 2 25
2098 1 40
0
输出:
100
70
输出将是测试用例输入的最佳总和。
我遇到的问题是我一直在努力想出一个始终找到这个最优总和的算法。
我的第一个想法是,我可以简单地逐周检查每个输入,然后选择该周利润最高的椅子。但是,如果一周有两把椅子的利润都高于前一周,这不起作用。
我的下一个想法是,我可以按照利润从高到低的顺序排列列表。然后我会从利润最高的列表中遍历列表,并将当前条目与下一个条目进行比较,然后选择周数较低的条目。
这些都不是始终如一的工作。谁能帮帮我?
【问题讨论】: