摘要:
挺好的一个题目,第一次做博弈类型的题目,希望TYVJ里还有更多的这类题目给我做,f[i][j]代表上一次对手取了j个,自己还有i个可取的时候能取的最大值,方程如下: f[i][j] = max(sum[i]-f[i-k][k]) (1<=k<=2*j),然后可以看到f[i][j - 1]会把1<=k<=2*(j-1)计算一次,而f[i][j]又要计算一次,重复了。所以……可以修改成: f[i][j] = max(f[i][j - 1], f[i - 2 * j][2 * j], f[i - (2 * j - 1)][2 * j - 1]); 把这段话记录一下:首先明确这 阅读全文