題目描述房間裡放著n塊乳酪。乙隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在(0,0)點處。
輸入輸出格式
輸入格式:
第一行乙個數n (n<=15)
接下來每行2個實數,表示第i塊乳酪的座標。
兩點之間的距離公式=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2))
輸出格式:
乙個數,表示要跑的最少距離,保留2位小數。
輸入輸出樣例輸入樣例#1:
41 1
1 -1
-1 1
-1 -1
輸出樣例#1:7.41
解釋:直接狀態壓縮dpdpdp,設d p[
v][i
]:
dp[v][i]:
dp[v][
i]:表示目前狀態是v
vv且再i
ii點,如果訪問過就在對應位標記1
11,那麼最後結果就是所有位是1
11,列舉訪問點就好了
#include#include#include#includeusing namespace std;
struct node;
node s[20];
int n=0;
double dis(node &a,node &b)
double dp[(1<<15)+10][20];
int main()}}
}}
double ret=99999999999.9;
for(int i=1;i<=n;i++)
printf("%.2f\n",ret);
return 0;
}
洛谷 P1433 吃乳酪
題目描述 房間裡放著n塊乳酪。乙隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在 0,0 點處。輸入輸出格式 輸入格式 第一行乙個數n n 15 接下來每行2個實數,表示第i塊乳酪的座標。兩點之間的距離公式 sqrt x1 x2 x1 x2 y1 y2 y1 y2 輸出格式 乙個數,表示要跑...
洛谷P1433 吃乳酪
房間裡放著n塊乳酪。乙隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在 0,0 點處。輸入格式 第一行乙個數n n 15 接下來每行2個實數,表示第i塊乳酪的座標。兩點之間的距離公式 sqrt x1 x2 x1 x2 y1 y2 y1 y2 輸出格式 乙個數,表示要跑的最少距離,保留2位小數...
洛谷P1433 吃乳酪
房間裡放著n塊乳酪。乙隻小老鼠要把它們都吃掉,問至少要跑多少距離?老鼠一開始在 0,0 點處。輸入格式 第一行乙個數n n 15 接下來每行2個實數,表示第i塊乳酪的座標。兩點之間的距離公式 sqrt x1 x2 x1 x2 y1 y2 y1 y2 輸出格式 乙個數,表示要跑的最少距離,保留2位小數...