QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 1024 MB Points totaux : 100

#4201. DEX 保存

Statistiques

糟糕!在玩了几个月的桌面角色扮演游戏《Bungalows & Banshees》后,你的角色不小心触发了一个陷阱,被一块巨大的滚动巨石压扁了。如果你当时在那个敏捷豁免检定中成功躲开了那块该死的巨石……

你总是沉溺于过去,开始思考你在豁免检定中成功的几率到底是多少,并发现这并不显而易见——你有吟游诗人的灵感加成,获得了一个 $d6$ 的奖励,但因为喝醉了,你在投掷时处于劣势,但另一方面,你的敏捷豁免修正值相当高……

一个难度为 $d$ 的基础敏捷豁免检定执行方式如下:首先,投掷一个 $d20$(即 20 面骰子)。如果投掷结果为 1,则立即失败;如果结果为 20,则立即成功。否则,将角色的敏捷(DEX)豁免修正值 $m$ 加到骰子结果上。如果总和至少为难度 $d$,则结果为成功,否则为失败。

对此有两个扩展规则。首先,投掷可能带有优势或劣势。在这种情况下,投掷两个 $d20$ 而不是一个,然后只保留最高值(优势)或最低值(劣势),并按照基础情况计算结果。其次,投掷可能带有额外的奖励或惩罚,形式为额外的骰子,这些骰子在与 $d$ 比较之前被投掷并加到或减去 $d20$ 的结果中(但无论是否有优势或劣势,这些奖励/惩罚骰子只投掷一次)。

编写一个程序,给定豁免检定的数据(难度、DEX 豁免修正值、优势/劣势状态以及额外的奖励骰子),计算豁免检定成功的概率。

输入格式

输入包含三行。第一行包含两个整数 $d$ 和 $m$ ($0 \le d \le 30, -10 \le m \le 10$),分别表示投掷难度和角色的 DEX 豁免修正值。第二行包含一个单词,指示投掷是否有优势或劣势。该单词为 “straight”(表示既无优势也无劣势的普通投掷)、“advantage” 或 “disadvantage”。最后,第三行以一个整数 $k$ ($0 \le k \le 5$) 开头,表示额外奖励/惩罚骰子的数量。随后是 $k$ 个骰子描述,每个形式为 “[+-]dx” ($3 \le x \le 10$ 为整数),表示将一个 $x$ 面骰子的结果加(如果是 ‘+’)或减(如果是 ‘-’)到结果中。

输出格式

输出一个数字,即敏捷豁免检定成功的概率。该数字的绝对误差应不超过 $10^{-6}$。

样例

样例输入 1

12 4
straight
0

样例输出 1

0.65

样例输入 2

10 3
advantage
0

样例输出 2

0.91

样例输入 3

20 7
disadvantage
2 +d6 -d4

样例输出 3

0.212916667

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.