luogu#P9380. [THUPC 2023 决赛] 总投票数

[THUPC 2023 决赛] 总投票数

题目背景

各位亲爱的《La Lumière: Scarlet Intense Flame - Adventurous Scarlet -》玩家:

非常荣幸能与您携手度过了这四年的美好时光,衷心感谢大家的支持与陪伴!

现在,我们非常遗憾的宣布,《La Lumière: Scarlet Intense Flame - Adventurous Scarlet -》将于 2023 年 5 月 28 日 15:00 停止运营服务。

停止运营相关时间表如下:

……

题目描述

在关服前,运营发起了一系列投票,调查哪些游戏内容给玩家带来了更深的印象。

作为系列的忠实玩家,你想知道有多少人参加了关服前的投票,但是运营只公开了最终的投票结果:对于一项包含 NN 个选项的投票,选择第 ii 个选项的玩家比例为 PiP_i1iN1\le i\le N)。运营在公布结果时进行了四舍五入,所有的 PiP_i 仅保留到小数点后第 LL 位。假设实际有 KK 位玩家参加了投票,其中有 DiD_i 位玩家选择了第 ii 个选项,则应该有

$$P_i-\frac{1}{2}\times 10^{-L}\le\frac{D_i}{K}< P_i+\frac{1}{2}\times 10^{-L} $$

显然,所有的 DiD_i 必须是非负整数,而 K=i=1NDiK=\sum_{i=1}^N D_i 则必须是正整数。现在,给定 NNPiP_i,请你求出满足 DiD_i 有非负整数解的最小的总投票数 KK

输入格式

输入的第一行包含一个正整数 NN,表示投票的选项总数。保证 1N1001\le N\le 100

接下来 NN 行,每行包括一个 [0,1][0, 1] 中的实数 PiP_i,表示选择第 ii 个选项的玩家比例。保证 i=1NPi=1\sum_{i=1}^N P_i =1,所有 PiP_i 均保留到小数点后第 LL 位,且 1L61\le L\le 6

输出格式

输出一个正整数,表示满足要求的最小总投票数 KK

3
0.166667
0.333333
0.500000

6

7
0.041096
0.109589
0.109589
0.164384
0.301370
0.068493
0.205479

73

13
0.00155
0.03876
0.01584
0.05189
0.08099
0.06825
0.15658
0.10404
0.02640
0.14332
0.12941
0.15529
0.02768

7766

提示

【样例解释 #1】

最小的总投票数为 66,对应每个选项的投票数为 1,2,31, 2, 3

【样例解释 #2】

最小的总投票数为 7373,对应每个选项的投票数为 3,8,8,12,22,5,153, 8, 8, 12, 22, 5, 15

【样例解释 #3】

最小的总投票数为 77667766,对应每个选项的投票数为 $12, 301, 123, 403, 629, 530, 1216, 808, 205, 1113, 1005, 1206, 215$。

【数据范围】

对于所有测试数据,1N1001\le N\le 1000Pi10\le P_i\le 1i=1NPi=1\sum_{i=1}^N P_i=1,且 PiP_i 最多统一保留到小数点后 66 位。

【题目来源】

来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)决赛。

题解等资源可在 https://github.com/THUSAAC/THUPC2023 查看。