暴力显然不行,所以考虑dp 记f[i][j][k][l]为使用i张1,j张2,k张3,l张4所得到的最大分数. 对于每个f[i][j][k][l],都可以由i-1张1,j张2,k张3,l张4所得到, 或者i张1,j-1张2,k张3,l张4所得到, 或者i张1,j张2,k-1张3,l张4所得到, i张1,j张2,k张3,l-1张4所得到 的最大分数, 四者取max. 当然,还需加上它当前位置的分数. 当前位置为a[i+j*2+k*3+l*4+1](初始位置是1) 代码如下: #include<io…