动态规划成立的条件中有一条:无后效性。

典型的比较就是多阶段路径问题与MOD4最优路径问题:前者无后效性 后者有

MOD4最优路径问题: 找到1-N的一条MOD4的余数最小的路径。

显然不满足无后效性 但是我们可以这样转化:(呵呵 我看书的)

增加状态的维数,将最优化问题转会为判定性问题。

设 f[k][i] 为bool型数组,表示从1点到K点长度mod4为i的路径是否存在。

显然如果dis[k-1][k]代表k-1的点到k的距离 由f[k-1][i-dis[k-1][k]]=TRUE 可以推出 f[k][i]=TRUE;

那么如果到从k-1的点到k的路径有M条,我们就可以由这M个状态的逻辑或得到 f[k][i]的真假。

呵呵 这样就把动态规划的思想运用到了不能用动态规划解决的问题。。
§