Logo Infinity Online Judge

InfOJ

时间限制:3 s 空间限制:512 MB

#16. 开门大吉

统计

题目描述

$n$ 位选手去参加节目“开门大吉”。共有 $m$ 套题,每套题包含 $p$ 个题目,第 $i$ 位选手答对第 $j$ 套题中第 $k$ 道的概率为 $f_{i,j,k}$。

若一位选手答对第 $i$ 题,会在已得到奖励的基础上,再得到 $c_i$ 元奖励。选手总是从第一道开始,按顺序答题的。

同时,为了防止过多的选手做同一套题,还有 $y$ 条形如“第 $i$ 位选手的套题编号必须至少比第 $j$ 位的大 $k$”的限制。

你需要给每一位选手分配一套题(不同选手可以相同),使得所有人的期望奖励和最小。

输入格式

输入包含多组数据。第一行是一个整数 $T$,为数据组数。

对于每组数据,第一行四个整数 $n,m,p,y$。

接下来一行 $p$ 个整数,第 $i$ 个为 $c_i$。

接下来 $m$ 个 $n\times p$ 的矩阵,第 $j$ 个矩阵中第 $i$ 行第 $k$ 个实数为 $f_{i,j,k}$。

接下来 $y$ 行,每行三个整数 $i,j,k$($1\le i,j\le n$,$-m\lt k\lt m$),描述一条限制。

输出格式

对于每组数据,输出一个实数,为答案。无解输出 -1

本题有 Special Judge,答案误差在 $5\times 10^{-4}$ 以内都算对。

由于 SPJ 敏感,请在每组数据末尾都输出一个换行符,并不要再输出其它字符。

样例

输入

4
3 2 4 0
10 10 10 20
0.3 0.5 0.7 0.4
0.2 0.6 0.2 0.2
0.7 0.1 0.8 0.2
0.5 0.5 0.5 0.5
0.2 0.5 0.3 0.6
0.3 0.5 0.4 0.1
3 2 4 1
10 10 10 20
0.3 0.5 0.7 0.4
0.2 0.6 0.2 0.2
0.7 0.1 0.8 0.2
0.5 0.5 0.5 0.5
0.2 0.5 0.3 0.6
0.3 0.5 0.4 0.1
2 3 1
3 2 4 1
10 10 10 20
0.3 0.5 0.7 0.4
0.2 0.6 0.2 0.2
0.7 0.1 0.8 0.2
0.5 0.5 0.5 0.5
0.2 0.5 0.3 0.6
0.3 0.5 0.4 0.1
1 2 1
3 2 4 2
10 10 10 20
0.3 0.5 0.7 0.4
0.2 0.6 0.2 0.2
0.7 0.1 0.8 0.2
0.5 0.5 0.5 0.5
0.2 0.5 0.3 0.6
0.3 0.5 0.4 0.1
1 2 1
2 3 1

输出

15.1460
18.5340
18.7560
-1

数据范围与样例解释

【样例解释】

这里只解释第二组数据。

一共只有两套题,而第二个人的套题编号大于第三个人,因此第二个人一定是选第二套,第三个人选第一套。

第二个人选第二套,期望支出:$0.2\times (1-0.5)\times 10+0.2\times 0.5 \times (1-0.3) \times 20+0.2\times 0.5 \times 0.3\times (1-0.6) \times 30+0.2\times 0.5 \times 0.3\times 0.6 \times 50=3.66$。

其他人的计算方法类似。

【数据范围】

本题捆绑测试。

对于所有数据,$1\le n,m,p\le 80$,$0\le y\le 10^3$,$0\le f_{i,j,k} \le 1$,$0\le c_i\le 10^5$,$1 \le T\le 50$。保证每个测试点的输入数据大小小于 $10\text{MB}$。

Subtask 1(20 pts):$n,m,p,y\le 7$;

Subtask 2(20 pts):$T\le 6$,$y=0$;

Subtask 3(20 pts):$n,m,p\le 30$,$y\le 200$;

Subtask 4(20 pts):$T=1$;

Subtask 5(20 pts):$T\le 5$。