F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

装箱问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 210    Accepted Submission(s): 84


Problem Description
云计算资源的供应属于在线动态多维向量装箱问题,装箱问题的核心在于最优化剩余大规格可发放量,提升装箱效率。客户的需求往往可以通过多种虚拟机规格组合实现,这使得实现的方式更加灵活。如何在客户需求多种虚拟机规格组合的场景下,选出剩余大规格可发放量最优的方案,也对装箱算法提出了挑战。

在本题中,为了简化计算,我们只考虑两种规格的物品,其体积分别为 $x$ 和 $y$,每种物品可以看作有无数个。之后,给出 $n$ 个空箱子,第 $i$ 个空箱子最多可容纳 $B_i$ 的体积。为了满足客户的需求,我们需要往这 $n$ 个箱子里一共装入不少于 $r$ 个单位体积的物品,而在满足客户需求的同时,尽可能使剩余的大规格可发放量最大化。

形式化地说,设 $C_i$ 表示第 $i$ 个箱子的剩余体积,那么需要满足以下条件:

$$
\sum\limits_{i=1}^{n}B_i - C_i \ge r
$$

满足上述条件的基础上,我们需要最大化如下式子:

$$
\sum\limits_{i=1}^{n}C_i^2
$$

本题只需要求出这个最大值即可。
 

Input
第一行一个正整数 $T$,表示有 $T$ 组数据。

对于每一组数据,第一行输入四个正整数 $n, x, y, r$。第二行输入 $n$ 个正整数 $B_1,B_2,\ldots, B_n$。

  • $2 \le n, x, y \le 100$

  • $2 \le B_i \le 100$

  • $2 \le r \le \sum_{i=1}^n B_i$

  • $\sum n \le 200$

 

Output
对于每一组数据,输出一行一个整数。如果无法满足客户需求,输出 $\texttt{-1}$;否则,输出该式子的最大值。
 

Sample Input
3 3 2 3 10 7 8 9 5 3 5 11 2 3 4 5 6 5 7 2 19 2 3 4 5 6
 

Sample Output
106 41 -1
 

Hint
第一组数据,$C_1 = 0, C_2 = 5, C_3 = 9$,总和为 $0^2 + 5^2 + 9^2 = 106$。
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-22 11:56:49, Gzip enabled