首先明确一点,如果某一时刻学习了某个技能,之后这个技能的熟练度掉到了0以下,那么这一时刻不如选择别的技能学习,因此最终答案不会受到“熟练度不能减到0以下”的限制。 先考虑朴素的三维dp,设数组abc分别代表三种技能的贡献,设dpi,j,k代表三种技能上次学习的时间分别为i,j,k时的最大贡献,特别的,i(j,k)=0代表没有学习过。我们在遍历时间轴时,可以先枚举当前时间选择的技能,再枚举上一个时间点选择的技能,比如,当前时间点是i,选择了技能1,上一刻也选择了技能1,那么dpi,j,k可以由dpi-1,j,k+ai-(i-j)-(i-k)转移得到,特别的,如果j=0,就不用-(i-j)这一项,...