QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 512 MB مجموع النقاط: 100 قابلة للهجوم ✓

#7329. 独立事件

الإحصائيات

Yuuka 对 $n$ 个相互独立的事件感兴趣。第 $i$ 个事件发生的概率为 $p_i$。Yuuka 将执行 $m$ 次操作,每次操作为以下两种之一:

  • “0 $l_i$ $r_i$”:仅考虑从 $l_i$ 到 $r_i$(包含两端)的事件,求这些事件均不发生的概率。由于该值可能非常小,你需要输出该概率的自然对数:如果概率为 $p$,则输出 $\ln(p)$。
  • “1 $l_i$ $r_i$ $k_i$”:对于所有 $l_i \le j \le r_i$,将 $p_j$ 乘以 $k_i$。所有事件保持相互独立。

输入格式

输入包含零个或多个测试用例,并以文件结束符(EOF)终止。对于每个测试用例:

第一行包含两个整数 $n$ 和 $m$:事件的数量和操作的数量($1 \le n, m \le 10^5$)。

第二行包含 $n$ 个实数 $p_1, p_2, \dots, p_n$,其中 $p_i$ 是第 $i$ 个事件发生的概率($10^{-5} \le p_i \le 0.1$)。

接下来的 $m$ 行提供了操作的描述。第 $i$ 行以一个整数 $t_i$ 开头:表示对应操作的类型。如果 $t_i$ 为 “0”,则后面跟着两个整数 $l_i$ 和 $r_i$。如果 $t_i$ 为 “1”,则后面跟着两个整数 $l_i$ 和 $r_i$ 以及一个实数 $k_i$($1 \le l_i \le r_i \le n$,$0.0001 \le k_i \le 100$)。

输入中的每个实数小数点后恰好有五位数字。此外,保证在任何时刻,每个 $p_i$ 都位于区间 $[10^{-5}, 0.1]$ 内。

保证所有测试用例的 $n$ 之和与 $m$ 之和均不超过 $10^5$。

输出格式

对于每个类型为 “0” 的操作,输出一个实数表示答案。如果你的答案的相对误差不超过 $10^{-9}$,则被视为正确。

样例

输入 1

6 5
0.01000 0.09871 0.00005 0.00999 0.01234 0.02345
0 1 6
1 3 4 10.00000
0 1 6
1 1 2 0.05000
0 1 6

输出 1

-0.16021487727848477000
-0.25587417689480757000
-0.14734347732072095000

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.