地图中有K种物品, 

1.空载情况下每走一步用能量1

2.取得物品i需要能量Ai

3.每取得一个物品, 每走一步的能量需要加Bi

4.*为起点,图中不能经过*,取得K种物品后返回*

问能否用不大于P的能量取得K种物品

PS: 条件4,在求得起点到所有点的最短路径后,要将*看作#,然后重新计算每对点对的最短路径.


状态f[s][i][j] , s为二进制状态,最后取得第i种物品中编号为j的物品的最短路径.

f[s][i][j] = min(f[s - (1 << k)][i0][j0] + d[i][j][i0][j0] * (1 + C[s - (1 << k)]) + A[k]), 

其中(s >> k)&1 == 1, (s >> i0)&1 == 1, k != i0,

d[i][j][i0][j0]为第i种物品编号j到第i0种物品编号j0的距离,

C[s]记录状态s的每走一步需要的能量


149 

 


 


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-14
  • 2021-10-10
猜你喜欢
  • 2021-09-22
  • 2022-02-26
  • 2022-01-28
  • 2021-09-17
  • 2022-02-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案