Closed Wizmann closed 4 years ago
Contest Code
这题咋比Leetcode还简单?。。。
排序,优先选最小的
DP。DP[i], 代表当前已经选中了i个盘子时的最大优美值(beauty values)。
二分结果。设最终结果为k,如果相邻的两个项目(a - b) > k时,则需要另外添加(a - b - 1) / k个项目。
把所有字符串先排序,然后根据前辍聚合。 例如,["A", "AB", "ABC", "ABCD"], k = 2。我们第一步聚合为["A"]和["AB", "ABC", "ABCD"]。然后再聚合为["A"], [ ["AB"], ["ABC", "ABCD"] ]。因为k = 2,所以我们把第二部分剩余的"AB"和第一部分的"A"进行聚合即可。
前辍不同的字符串可以忽略,因为即使成为了一组,其score也是0。
Contest Code
A. Allocation
排序,优先选最小的
B. Plates
DP。DP[i], 代表当前已经选中了i个盘子时的最大优美值(beauty values)。
C. Workout
二分结果。设最终结果为k,如果相邻的两个项目(a - b) > k时,则需要另外添加(a - b - 1) / k个项目。
D. Bundling
把所有字符串先排序,然后根据前辍聚合。 例如,["A", "AB", "ABC", "ABCD"], k = 2。我们第一步聚合为["A"]和["AB", "ABC", "ABCD"]。然后再聚合为["A"], [ ["AB"], ["ABC", "ABCD"] ]。因为k = 2,所以我们把第二部分剩余的"AB"和第一部分的"A"进行聚合即可。
前辍不同的字符串可以忽略,因为即使成为了一组,其score也是0。