动态规划之免费馅饼详解
/* 动态规划满足整体最优解可以由子结构局部最优解推出,从小到大一步一步推往前或者往后推。 * * 实际上做题的时候,就是把每种情况下小的最优解存起来 ,供下一个更大规模的局部去选择最优解,然后再存起来这种更大规模的各种情况下最优解。 * 一层一层存起来去推,最后就能求得最后你需要规模的最优值 * * 此题dp就是用来存局部最优解的 * dp【n】【1,2,3.....】就是n规模存1 ,2 ,3......这几种位置情况各自能再接到最多的馅饼(明显这里还能接再得到最多馅饼就是最优意思) * dp【n-1】【1,2,3......】就是扩大规模变为n-1后1,2,3....这几种位置情况下还能在接到的馅饼 * (n-1之所以比n规模大,是考虑实际情况,n-1时刻到endTime时刻明显比n增加了1,时间长还能接到的饼多,当然算是规模大了) * (求最优n规模必须经过最优n-1规模,说明就存在最优子结构关系) * * * dp二维数组具体表示 从t时刻起到最后一刻时间,x位置还能再接的最多的饼数(注意是还能再接,且是最多),题目总共有是一个位置,故x为11 * * exactly 二维数组 存 x位置,在t时刻,头顶上会掉多少个饼 * * dp最优子结构性质公式:dp[x,t]=exactly[x,t] + max{dp[x,t+1],dp[x-1,t+1],dp[x+1,t+1]}