AT_abc313_f [ABC313F] Flip Machines

题目描述

有 $N$ 张编号为 $1$ 到 $N$ 的卡片。每张卡片的正反两面分别写有整数,对于第 $i$ 张卡片,正面写有 $A_i$,反面写有 $B_i$。一开始,所有卡片都正面朝上。 现在有 $M$ 台机器,编号为 $1$ 到 $M$。第 $j$ 台机器关联两个 $1$ 到 $N$ 之间的整数 $X_j, Y_j$(可以相同)。每次启动第 $j$ 台机器时,有 $\frac{1}{2}$ 的概率将编号为 $X_j$ 的卡片翻面,剩下的 $\frac{1}{2}$ 的概率将编号为 $Y_j$ 的卡片翻面。每次启动的概率彼此独立。 现在,すぬけ君将依次进行以下操作: 1. 选择一个由 $1$ 到 $M$ 之间的整数构成的集合 $S$。 2. 按照编号从小到大的顺序,依次启动 $S$ 中编号的机器各一次。 请你求出,すぬけ君如何选择 $S$,才能使“所有操作结束后,各卡片当前朝上的面上的整数之和”的期望值最大,并输出这个最大期望值。

输入格式

输入按以下格式从标准输入读入。 > $N$ $M$ > $A_1$ $B_1$ > $\vdots$ > $A_N$ $B_N$ > $X_1$ $Y_1$ > $\vdots$ > $X_M$ $Y_M$

输出格式

请输出答案。当你的输出与真值的绝对误差或相对误差不超过 $10^{-6}$ 时,将被判定为正确。

说明/提示

### 限制条件 - $1 \leq N \leq 40$ - $1 \leq M \leq 10^5$ - $1 \leq A_i, B_i \leq 10^4$ - $1 \leq X_j, Y_j \leq N$ - 输入均为整数 ### 样例解释 1 如果选择 $S$ 为空集,则不会启动任何机器,此时“所有操作结束后各卡片当前朝上的面上的整数之和”的期望值为 $3+10+5=18$。如果选择 $S=\{1\}$,则启动机器 $1$, - 若卡片 $X_1=1$ 被翻面,则和为 $10+10+5=25$; - 若卡片 $Y_1=2$ 被翻面,则和为 $3+6+5=14$。 因此期望值为 $\frac{25+14}{2}=19.5$。 所以最大期望值为 $19.5$。 ### 样例解释 2 可能存在多台机器拥有相同的 $(X_j, Y_j)$。 由 ChatGPT 4.1 翻译