搬水果-吉林大学
在一个果园中,小明已经将所有水果采摘完毕,并按照种类的不同分成若干堆。现在他需要将这些水果堆合并成单一的一堆。
每次合并操作允许小明将任意两堆水果合为一堆,所消耗的体力值等于这两堆水果重量的总和。经过 n1 次合并后,所有水果最终会形成一堆。总的体力消耗为每一次合并时消耗体力的累加。
假设每个水果的重量均为 1,且已知水果的种类数量以及每种水果的具体数目。任务是设计一种最优的合并顺序方案,使得小明在整个过程中耗费的体力最少,并输出这个最小体力值。
例如:存在 3 种水果,数量分别为 1、2、9。可先合并数量为 1 和 2 的两堆,得到新堆大小为 3,消耗体力 3;再将该堆与数量为 9 的堆合并,消耗体力 12。总体力消耗为 3 + 12 = 15。可以验证,15 是此情况下的最小可能消耗值。
输入格式:
每组数据包含两行。第一行为整数 n(1 ≤ n ≤ 10000),表示水果种类数。
第二行包含 n 个以空格分隔的整数,其中第 i 个整数 ai(1 ≤ ai ≤ 1000)代表第 i 类水果的数量。
输出格式:
对每组输入数据,输出一个整数,表示最小体力消耗值,结果需换行。保证结果小于 231。
3
9 1 2
15
字符串的反码-吉林大学
在二进制概念中,一个数的每一位取反即为其反码。在此基础上,我们定义字符的反码规则如下:
- 若字符为小写字母,则其与 'a' 的距离等于其反码与 'z' 的距离;
- 若字符为大写字母,则其与 'A' 的距离等于其反码与 'Z' 的距离;
- 其他情况(如数字、符号等),其反码保持不变。
举例说明:'a' 的反码是 'z';'c' 对应 'x';'W' 的反码为 'D';'1' 的反码仍是 '1';特殊字符如 ' ′ ' 的反码依然是 ' ′ '。
一个字符串的反码由其各个字符的反码依次组成。我们的目标是根据上述规则,计算出给定字符串的反码。
输入格式:
每行输入一个字符串,长度不超过 80 个字符。当输入仅为单个字符 '!' 时,表示输入结束,无需处理该行。
输出格式:
对每个有效输入字符串,输出其对应的反码字符串,每行一个结果。
Hello
JLU-CCST-2011
!
Svool
QOF-XXHG-2011

雷达卡


京公网安备 11010802022788号







