A14481 | Game of Chance
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
The King wants to marry off his daughter, and he wants her husband to have the greatest innate luckiness possible. To find such a person he decided to hold a heads-or-tails tournament.
If person $A$ with luckiness $x$ and person $B$ with luckiness $y$ play heads-or-tails against each other, person $A$ wins with probability $x/(x+y)$ .
The tournament has several rounds. Each round some participants are split into pairs. Each pair plays against each other, and the loser leaves the tournament.
The participants are numbered from $1$ to $n$ . During the first round, a number $k$ ( $1 \le k \le n$ ) is selected such that $n-k/2$ is a power of $2$ (such $k$ always exists and is unique). Only participants numbered from $1$ to $k$ take part in the first round. It ensures that in all other rounds the number of participants is the power of $2$ .
During other rounds, all the participants who still have not left the tournament take part. If during some round, participants numbered $p_1 < \ldots < p_{2m}$ take part, then they are split into pairs in the following manner: participant $p_{2i-1}$ plays against participant $p_{2i}$ for each $i$ from $1$ to $m$ .
The rounds are held until only one participant is left. He is declared the winner of the tournament and he will marry the King's daughter. The princess can't wait to find out who is her future husband. She asked every participant to tell her his luckiness. Assuming they did not lie, she wants to know the probability of each participant winning the tournament. As you are the best friend of the princess, she asks you to help her.
If person $A$ with luckiness $x$ and person $B$ with luckiness $y$ play heads-or-tails against each other, person $A$ wins with probability $x/(x+y)$ .
The tournament has several rounds. Each round some participants are split into pairs. Each pair plays against each other, and the loser leaves the tournament.
The participants are numbered from $1$ to $n$ . During the first round, a number $k$ ( $1 \le k \le n$ ) is selected such that $n-k/2$ is a power of $2$ (such $k$ always exists and is unique). Only participants numbered from $1$ to $k$ take part in the first round. It ensures that in all other rounds the number of participants is the power of $2$ .
During other rounds, all the participants who still have not left the tournament take part. If during some round, participants numbered $p_1 < \ldots < p_{2m}$ take part, then they are split into pairs in the following manner: participant $p_{2i-1}$ plays against participant $p_{2i}$ for each $i$ from $1$ to $m$ .
The rounds are held until only one participant is left. He is declared the winner of the tournament and he will marry the King's daughter. The princess can't wait to find out who is her future husband. She asked every participant to tell her his luckiness. Assuming they did not lie, she wants to know the probability of each participant winning the tournament. As you are the best friend of the princess, she asks you to help her.
输入格式
The first line of the input contains the number of participants, $n$ ( $2 \le n \le 3 \cdot 10^5$ ). The second line of the input contains $n$ integer numbers, $a_1, \ldots, a_{n}$ ( $1 \le a_i \le 10^9$ ). The luckiness of the $i$ -th participant equals to $a_i$ .
输出格式
Print $n$ numbers $p_i$ . The $i$ -th number should be the probability of the $i$ -th participant winning the tournament. The absolute error of your answer must not exceed $10^{-9}$ .
输入输出样例
输入 #1
5 1 4 1 1 4
输出 #1
0.026 0.3584 0.0676 0.0616 0.4864
Here is an example of a tournament bracket, showing the winning probability in each pair.


C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted