#P3392. Pitcher Rotation

Pitcher Rotation

题目描述

对于职业棒球队的经理来说,决定每场比赛的先发投手是一项重要任务。在信息时代,职业体育已积累了大量数据,经理知道每位投手对阵各球队的胜率。遗憾的是,对阵某支球队时,不能总是选择对该队胜率最高的投手,因为有一条规则:投手在投完一场比赛后必须至少休息4天。
现有nn名投手(5n1005 \leq n \leq 100)、mm个对手球队(3m303 \leq m \leq 30),一个赛季共有gg场比赛(3g2003 \leq g \leq 200),赛季持续g+10g+10天,且每天最多有一场比赛。给定一个m×nm \times n的矩阵PP,其中元素PijP_{ij}表示投手jj对阵球队ii的胜率(百分比形式)。同时给定一个长度为g+10g+10的赛程列表d1,d2,,dg+10d_1, d_2, \dots, d_{g+10},其中di=0d_i=0表示当天无比赛,否则表示对手球队编号。
你的任务是为每场比赛选择先发投手,使得预期获胜场次最大化。

输入

第一行包含整数tt1t51 \leq t \leq 5),表示需要处理的球队数量。
对于每个球队:

  • 第一行包含nn(投手数)、mm(对手球队数)、gg(比赛场数)。
  • 接下来mm行,每行包含nn个两位数,表示矩阵PP的第ii行(即各投手对阵球队ii的胜率,如92表示0.92)。
  • 接下来g+10g+10行,每行一个整数did_i,表示赛程安排。

输出

按输入顺序,对每个球队输出预期获胜场次的最大值,结果保留恰好两位小数。

输入数据 1

1
5 3 6
91 90 50 50 50
65 40 60 60 60
66 40 60 60 60
1
2
3
3
2
1
0
0
0
0
0
0
0
0
0
0

输出数据 1

4.26

来源

高雄 2006年竞赛