#P17005. [NWERC 2019] Gnoll Hypothesis

    ID: 19281 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>2019Special Judge组合数学概率论ICPC

[NWERC 2019] Gnoll Hypothesis

背景

译自 Northwestern Europe Regional Contest (NWERC) 2019

题目描述

你非常喜欢角色扮演游戏《The Eldest Scrolls: Earthrim》,并且了解游戏内部的所有机制。例如,当生成一个新的怪物时,游戏中的 nn 种不同怪物各有一个固定出现概率,而你准确知道这个怪物类型的概率分布。

然而,在最新更新中,开发者似乎改变了怪物生成方式。经过测试和逆向工程后,你发现每个刷新点不再从全部 nn 种怪物中生成,而是只拥有一个由 kk 种怪物组成的刷新池。这些刷新池在游戏开始时随机选择;每个刷新点独立选择,并且每种怪物被选入刷新池的机会相同。

显然,有开发者在调整生成概率时偷懒了。对于未被选入的怪物类型,他们没有重新归一化被选中类型的概率,而是把未被选中类型的生成概率加到列表中下一个被选中的怪物类型上。如果列表末尾的怪物类型未被选中,则它们的生成概率会加到列表中第一个被选中的怪物类型上。下图展示了一个 n=5n=5、随机选出 k=3k=3 种怪物的例子,以及这 33 种怪物调整后的生成概率。

:::align{center}

:::

更新后,有些怪物似乎比以前出现得更少,而有些怪物出现得更多,比如现在到处都是豺狼人。你怀疑新的生成逻辑改变了怪物的有效生成概率。为了验证这个假说,你决定计算更新后各怪物的有效生成概率。

输入格式

输入包含:

  • 第一行包含两个整数 nnkk (1kn5001\le k\le n\le 500),表示怪物类型总数以及每个刷新点随机选入刷新池的怪物类型数量。
  • 第二行包含 nn 个实数 s1,s2,,sns_1,s_2,\ldots,s_n (si0s_i\ge 0j=1nsj=100\sum_{j=1}^{n}s_j=100),其中 sis_i 表示列表中第 ii 种怪物原本的出现概率,单位为百分比。每个实数的小数位数至多为 66

输出格式

输出一行,包含 nn 个实数,表示每种怪物的有效生成概率,单位为百分比。你输出的第 ii 个数应对应列表中的第 ii 种怪物。

你的答案的绝对误差或相对误差不超过 10610^{-6} 即可。

5 3
1 25 39 12 23
8.7 17.6 31 21.4 21.3
3 2
2.019 87.51234 10.46866
4.8355533 59.01456 36.1498867

提示

【数据规模与约定】

  • 1kn5001\le k\le n\le 500
  • si0s_i\ge 0,且 i=1nsi=100\sum_{i=1}^{n}s_i=100
  • 每个 sis_i 的小数位数至多为 66
  • 输出概率时,允许绝对误差或相对误差不超过 10610^{-6}