ccf-csp 201809-4 再卖菜
递推+回溯吧
已知第二天的的菜价,然后从第一个店铺开始依次尝试推到第一天的菜价即可(就是不断递推),递推发现不满足时就回溯修改,思路比较简单。
但是要做好剪枝,否则会超时!
我这里使用了一个flag[N][110][110]数组记录剪枝,flag[i][j][k]代表之前是否计算过第i个店铺价格为j且第i-1家店铺价格为k的情况(因为如果一旦相邻两个店铺的价格确定,后续店铺的情况就和之前讨论过的一样了,无需再次计算,肯定是不能求得解的),给flag[i][j][k]标记为true即可(说明曾经考虑过此情况,未能求得解)
代码如下:
1 |
|