CF183D T-shirt

题目描述

你将在 CodeForces 的一个 $n$ 人团队实习,$n$ 个工程师由 $1$ 到 $n$ 编号。你决定给每个工程师一个纪念品:一件来自你的国家的 T 恤(T 恤在 CodeForces 很受欢迎)。不幸的是,你不知道 $n$ 个工程师各自衣服的尺寸。一共有 $1$ 到 $m$ 共 $m$ 种不同的尺寸,并且每个工程师只适合一个尺寸。 你不知道每个工程师的尺寸,所以你询问你的朋友 Gerald。很遗憾,他也不知道每个工程师的尺寸,但他知道对于第 $i$ 个工程师,适合第 $j$ 种 T 恤的概率。 最后你带来了 $n$ 件 T 恤(这 $n$ 件 T 恤可以是任意组合,你也可以带多件同样尺寸的衣服),在你准备 T 恤的时候并不知道每个工程师的尺寸,所以你只能根据 Gerald 提供的概率决定你所带的T恤。 当你到达办公室后,你会询问每个工程师他适合的T恤的尺寸,如果你有那个尺寸的衣服,你就会给他一件,否则就不给他 T 恤。你会从 $1$ 号问起,一直问到 $n$ 号。 你的任务是最大化收到适合自己的衣服的工程师数量的期望值。

输入格式

第一行为两个用空格分开的整数 $n$ 和 $m$($1\le n\le3000$,$1\le m\le300$),分别代表工程师数量和衣服尺寸数量 接下来有 $n$ 行,每行 $m$ 个空格分开的整数,第 $i$ 行第 $j$ 个数字代表第 $i$ 个工程师适合第 $j$ 种 T 恤的概率。每个整数在 $0$ 到 $1000$ 之间。实际上的概率应为每个整数除以 $1000$。 保证对于每个工程师适合每种 T 恤的概率之和为 $1$。

输出格式

输出一行,一个实数代表收到 T 恤的工程师数量的最大期望值。允许最大误差为 $10^{-9}$。

说明/提示

For the first example, bring one T-shirt of each size. With $ 0.5 $ chance, either both engineers fit inside T-shirts of size $ 1 $ or both fit inside T-shirts of size $ 2 $ . With the other $ 0.5 $ chance, one engineer fits inside a T-shirt of size $ 1 $ and the other inside a T-shirt of size $ 2 $ . If the first is true, the number of engineers that receive a T-shirt is one. If the second is true, the number of such engineers is two. Hence, the expected number of engineers who receive a T-shirt is $ 1.5 $ . This is maximum possible expected number of engineers for all sets of T-shirts. For the second example, bring two T-shirts of size $ 1 $ and one T-shirt of size $ 2 $ . This way, each engineer will definitely receive a T-shirt of his size. For the third example, bring one T-shirt of size $ 4 $ .