#P12515. [OOI 2023 Day 1]又一个 n 维巧克力

[OOI 2023 Day 1]又一个 n 维巧克力

题目描述

妈妈给小男孩瓦西娅买了一个 nn 维的巧克力,这个巧克力是一个 nn 维立方体,每条边的长度为 11。巧克力上已经预先划分了小块。对于第 ii 维,可以用超平面将其分成 aia_i 等份。因此,巧克力总共被分成 a1a2a3ana_1 \cdot a_2 \cdot a_3 \cdot \ldots \cdot a_n 个小块,每个小块在第 ii 维的长度为 1ai\frac{1}{a_i},相应地每个小块的体积为 1a1a2an\frac{1}{a_1 a_2 \cdots a_n}

瓦西娅和他的朋友们想要切分这个巧克力,使得最终至少得到 kk 个小块,同时瓦西娅希望最小一块的体积尽可能大。切分巧克力只能在小块的连接处进行,而且每次切分必须沿着某个形成小块的超平面贯穿整个巧克力。只有完成所有切分后,瓦西娅才会将巧克力拆分成小块。

更形式化地,瓦西娅需要选择数字 b1,b2,,bnb_1, b_2, \dots, b_n (1biai)(1 \le b_i \le a_i),表示沿每个维度切分的份数。必须满足条件 b1b2bnkb_1 \cdot b_2 \cdot \ldots \cdot b_n \ge k,以确保切分后得到不少于 kk 个小块。可以注意到,在最优切分下,最小一块将包含 $\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor$ 个小块,其体积为 $\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor \cdot \frac{1}{a_1 a_2 \cdots a_n}$。

瓦西娅希望最大化最小一块体积乘以 kk 的值,即最大化 $\lfloor \frac{a_1}{b_1} \rfloor \dotsm \lfloor \frac{a_n}{b_n} \rfloor \cdot \frac{1}{a_1 a_2 \cdots a_n} \cdot k$。请帮助他实现这一目标。

输入格式

第一行包含两个整数 nnkk (1n100,1k107)(1 \le n \le 100, 1 \le k \le 10^{7}),分别表示巧克力的维度和需要分成的份数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n (1ai107)(1 \le a_i \le 10^{7}),表示沿每个维度划分的小块数量。

输出格式

输出一个数字,即最小一块的最大可能体积乘以 kk 的值,绝对误差或相对误差不超过 10910^{-9}

如果在给定限制下无法将巧克力分成至少 kk 块,则输出 00

1 2
5

0.8

2 6
5 10

0.72

2 7
4 4

0.875

2 3
4 5

0.75

4 444
57 179 239 2

0.97557326850704739751

2 5
2 2

0

数据范围与提示

详细子任务附加限制及分值如下表所示。其中子任务 00 是样例。

子任务 分值 附加限制 子任务依赖 备注
11 1010 n2n \leq 2
22 1212 k500,ai500k \leq 500, a_i \leq 500 00
33 1313 k20000,ai2000k \leq 20000, a_i \leq 2000 0,20, 2
44 1212 k40000k \leq 40000 0,2,30, 2, 3
55 1010 k200000k \leq 200000 0,2,3,40, 2, 3, 4
66 1111 k4106,ai2000k \leq 4 \cdot 10^{6}, a_i \leq 2000 0,2,30, 2, 3
77 1515 k5106k \leq 5 \cdot 10^{6} 0,260, 2 \sim 6
88 1717 070 \sim 7