题库练习 「CTSC2017」游戏
← 上一题 下一题 →

A6822 | 「CTSC2017」游戏

来源省选
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

小 R 和室友小 B 在寝室里玩游戏。他们一共玩了 $ n $ 局游戏,每局游戏的结果要么是小 R 获胜,要么是小 B 获胜。
第 $ 1 $ 局游戏小 R 获胜的概率是 $ p_1 $,小 B 获胜的概率是 $ 1 - p_1 $。除了第一局游戏之外,每一局游戏小 R 获胜的概率与上一局游戏小 R 是否获胜有关。

具体来说:

1. 如果第 $ i − 1 (1 < i \leq n) $ 局游戏小 R 获胜,那么第 $ i $ 局游戏小 R 获胜的概率为 $ p_i $,小 B 获胜的概率为 $ 1 - p_i $。
2. 如果第 $ i − 1 (1 < i \leq n) $ 局游戏小 B 获胜,那么第 $ i $ 局游戏小 R 获胜的概率为 $ q_i $,小 B 获胜的概率为 $ 1 - q_i $。

小 D 时常过来看小 R 和小 B 玩游戏,因此他知道某几局游戏的结果。他想知道在他已知信息的条件下,小 R 在 $ n $ 局游戏中总共获胜的局数的期望是多少。

小 D 记性不太好,有时他会回忆起某局游戏的结果,并把它加入到已知信息中;有时他会忘记之前某局游戏结果,并把它从已知信息中删除。你的任务是:每当小 D
在已知信息中增加或删除一条信息时,根据小 D 记得的已知信息,帮助小 D 计算小 R 在 $ n $ 局游戏中总共获胜局数的期望是多少。

需要注意的是:如果小 D 忘了一局游戏的结果,之后又重新记起,两次记忆中的游戏结果不一定是相同的。你不需要关心小 D 的记忆是否与实际情况相符,你只需要根据他的记忆计算相应的答案。

输入格式

第一行两个正整数 $ n, m $ 和一个字符串 $ \text{type} $。表示小 R 和小 B 一共玩了 $ n $ 局游戏,小 D 一共进行了 $ m $ 次修改已知信息的操作,该数据的类型为 $ \text{type} $。$ \text{type} $ 字符串是为了能让大家更方便地获得部分分,你可能不需要用到这个输入,其具体含义见「数据范围与提示」中的「限制与约定」。

接下来 $ n $ 行,第一行包含一个实数 $ p_1 $,表示第一局比赛小 R 获胜的概率是 $ p_1 $。第 $ i (1 < i \leq n) $ 行包含两个实数 $ pi_i, q_i $。表示在第 $ i − 1 $ 局游戏小 R 获胜的情况下,第 $ i $ 局游戏小 R 获胜的概率是 $ p_i $;$ q_i $ 表示在第 $ i − 1 $ 局游戏小 B 获胜的情况下,第 $ i $ 局游戏小 R 获胜的概率是 $ q_i $。

接下来 $ m $ 行,每行描述一个小 D 已知信息的变化,操作分为两类。

1. add i c 表示小 D 回忆起了第 $ i $ 局比赛的结果,并把它加入到已知信息中。若 $ c = 0 $ 表示第 $ i $ 局比赛小 B 获胜,若 $ c = 1 $ 表示第 $ i $ 局比赛小 R 获胜。数据保证 $ i, c $ 均为整数且 $ 1 \leq i \leq n, 0 \leq c \leq 1 $,如果这个操作不是第一个操作,保证在上一个操作结束后的已知信息中没有第 $ i $ 局比赛的结果。
2. del i 表示小 D 忘记了第 $ i $ 局比赛的结果,并把它从已知信息中删除。数据保证 $ i $ 是整数且 $ 1 \leq i \leq n $,保证在上一个操作结束后的已知信息中有第 $ i $ 局比赛的结果。

输出格式

对于每个操作,输出一行实数,表示操作结束后,在当前已知信息的条件下,小 R 在 $ n $ 局游戏中总共获胜的局数的期望是多少。

输入输出样例

输入 #1
3 3 A
0.3
0.5 0.2
0.9 0.8
add 1 1
add 3 0
del 1
输出 #1
2.350000
1.333333
0.432749
C++ 编辑器
输入
输出