问题
分析
因为要记录前四天的出场的投手,所以需要有四个维度用来记录投手的编号,但是投手最多有100个,这样的话就超出了空间,而且时间也会超出,所以使用贪心来优化,因为对阵一个球队最多需要5个投手(极端情况下连续6天对阵同一支球队,第6天和第1天的出场投手可以相同),这样的话对于每只球队,只需要记录对应他的胜率最高的5个投手就行了,出场的一定是这5人中的一个,那么维度大小就可以是6(剩余一个给没有比赛时,不需要球手出场),使用滚动数组压缩空间,状态dp[i][a][b][c][d]的累计胜利期望,i代表第i天,其中a,b,c,d分别代表第i-3,i-2,i-1,i天出场的投手
转移方程:如果第i天没有赛事, d p [ i + 1 ] [ b ] [ c ] [ d ] [ 0 ] = m a x ( d p [ i + 1 ] [ b ] [ c ] [ d ] [ 0 ] , d p [ i ] [ a ] [ b ] [ c ] [ d ] ) dp[i+1][b][c][d][0]=max(dp[i+1][b][c][d][0],dp[i][a][b][c][d]) dp[i+1][b][c][d][0]=max(dp[i+1][b][c][d][0],dp[i][a][b][c][d])
如果有赛事, d p [ i + 1 ] [ b ] [ c ] [ d ] [ i d ] = m a x ( d p [ i + 1 ] [ b ] [ c ] [ d ] [ i d ] , d p [ i ] [ a ] [ b ] [ c ] [ d ] + p i t c h e r [ r i v a l [ i ] ] [ i d ] . g r a d e )