洛谷 P1433 吃奶酪 状压DP

题目描述

洛谷 P1433 吃奶酪 状压DP_第1张图片
洛谷 P1433 吃奶酪 状压DP_第2张图片

分析

比较简单的状压DP
我们设\(f[i][j]\)为当前的状态为\(i\)且当前所在的位置为\(j\)时走过的最小距离
因为老鼠的坐标为\((0,0)\),所以我们要预处理出\(f[1<<(i-1)][i] (1 \leq i \leq n)\)的值
同时在读入的时候顺便处理处任意两个奶酪之间的距离
下面是状态转移方程

    for(int i=1;i<(1<

思路就是枚举当前状态已经到达的城市,在已经到达的城市中枚举当前所在的城市
同时枚举上一个状态所在的城市,在所有状态中取一个最小值即可

代码

#include
using namespace std;
typedef double dd;
const int maxn=18;
dd f[1<

你可能感兴趣的:(洛谷 P1433 吃奶酪 状压DP)