码迷,mamicode.com
首页 > 其他好文 > 详细

洛古——P1433 吃奶酪

时间:2017-07-16 10:10:20      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:name   span   nbsp   amp   pid   sqrt   开始   namespace   using   

https://www.luogu.org/problem/show?pid=1433

题目描述

房间里放着n块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)点处。

输入输出格式

输入格式:

 

第一行一个数n (n<=15)

接下来每行2个实数,表示第i块奶酪的坐标。

两点之间的距离公式=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))

 

输出格式:

 

一个数,表示要跑的最少距离,保留2位小数。

 

输入输出样例

输入样例#1:
4
1 1
1 -1
-1 1
-1 -1
输出样例#1:
7.41

 1 #include <algorithm>
 2 #include <cstdio>
 3 #include <cmath>
 4 
 5 using namespace std;
 6 
 7 int n,vis[20];
 8 struct Node
 9 {
10     double x,y;
11 }node[20];
12 double ans=1<<30,dis[20][20];
13 
14 void DFS(int now,double dist,int cnt)
15 {
16     if(dist>=ans) return;
17     if(cnt==n+1)
18     {
19         if(ans>dist) ans=dist;
20         return ;
21     }
22     for(int i=1;i<=n;i++)
23     {
24         if(vis[i]) continue;
25         vis[i]=1;
26         DFS(i,dist+dis[now][i],cnt+1);
27         vis[i]=0;
28     }
29 }
30 
31 int main()
32 {
33     scanf("%d",&n);
34     for(int i=1;i<=n;i++)
35         scanf("%lf%lf",&node[i].x,&node[i].y);
36     for(int i=0;i<=n;i++)
37         for(int j=0;j<=n;j++)
38             dis[i][j]=sqrt((node[i].x-node[j].x)*(node[i].x-node[j].x)+(node[i].y-node[j].y)*(node[i].y-node[j].y));
39     DFS(0,0,1);
40     printf("%.2lf",ans);
41     return 0;
42 }

 

洛古——P1433 吃奶酪

标签:name   span   nbsp   amp   pid   sqrt   开始   namespace   using   

原文地址:http://www.cnblogs.com/Shy-key/p/7189560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!