题目描述

房间里放着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

源代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 1001
#define MOD 123
#define E 1e-6
using namespace std;
int n;
int vis[N];
double dis[N][N];
double sum;
struct Node{double x;double y;
}point[N];
double calculate(int i,int j)//计算两点距离
{return sqrt( (point[i].x-point[j].x)*(point[i].x-point[j].x)+(point[i].y-point[j].y)*(point[i].y-point[j].y) );
}
void dfs(int past,int now,double len)//已经走过的点,上一个走的点,已经走过的长度
{if(len>sum)//剪枝return;if(past==n){sum=min(sum,len);return;}for(int i=1;i<=n;i++)//枚举所有点if(!vis[i])//没有走过{vis[i]=1;dfs(past+1,i,len+dis[now][i]);vis[i]=0;}
}
int main()
{cin>>n;for(int i=1;i<=n;i++)cin>>point[i].x>>point[i].y;point[0].x=0;point[0].y=0;for(int i=0;i<=n;i++)//预处理两点距离for(int j=0;j<=n;j++)dis[i][j]=calculate(i,j);sum=INF;dfs(0,0,0);printf("%.2lf\n",sum);return 0;
}

吃奶酪(洛谷-P1433)相关推荐

  1. 洛谷P1433 吃奶酪--Java解法(货郎担问题)

    洛谷P1433 吃奶酪–Java解法(货郎担问题) 题目链接 解决思想 本题目是一个典型的货郎担问题,即从(0,0)点出发,所有点仅经过依次(我们可以用反证法证明如果有一个点经过两次其路径一定比每个点 ...

  2. 洛谷 P1433 吃奶酪 dfs剪枝

    洛谷 P1433 吃奶酪 dfs剪枝 题解: dfs+剪枝,不过现在好像被卡时间了,第10个点过不了.. 代码如下: #include<iostream> #include<algo ...

  3. 洛谷 P1433 吃奶酪

    这一题用到了状态压缩.然后接下来可以用 dp 或 dfs. 一开始我用的是 dp,不会,然后看题解,dp 写完感觉脑子糊糊的,于是打算写写 dfs. dfs 优化后还是 WA 了一个点,然后又跑去看大 ...

  4. 【每日一题】洛谷 p1433 吃奶酪 状压dp

    - [P1433 吃奶酪](https://www.luogu.com.cn/problem/P1433) 换一种类型,这次求长度最小值,(n<15)接着状压 题目:房间里放着 nn 块奶酪.一 ...

  5. 洛谷P1433 吃奶酪【dfs】【剪枝】

    题目:https://www.luogu.org/problemnew/show/P1433 题意: 给定n个坐标,要求从(0,0)开始走遍所有点,最少经过的路程. 思路: 刚开始想像数字三角形一样适 ...

  6. 洛谷 - P1433 - 吃奶酪 - dfs

    https://www.luogu.org/problemnew/show/P1433 并不是每一个求最短距离就是bfs,这个肯定是dfs. 直接计算15!可以知道枚举必定超时,但是! 我们dfs非常 ...

  7. 洛谷P1433 吃奶酪

    题链 排列 的 装压 两个同类型的状压 No Change G 邦邦的大合唱站队 题目描述 房间里放着 n 块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0)点处. 输入格 ...

  8. Likecloud-吃、吃、吃(洛谷-P1508)

    题目描述 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个n*m(n and m<=200)的矩型的巨型大餐 ...

  9. 洛谷 深基 第1部分 语言入门 第7章 函数与结构体

    P5735 [深基7.例1]距离函数 [深基7.例1]距离函数 - 洛谷 P5735 [深基7.例1]距离函数(python3实现) P5735 [深基7.例1]距离函数(python3实现)_青少年 ...

最新文章

  1. Majority Element:主元素
  2. 程序随笔——C++实现的一个线程池
  3. Fiddler 抓包详细使用教程
  4. Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...
  5. gevent版TCP服务器
  6. web安全day28:一文读懂Linux日志,运维工程师必备
  7. g ++在linux下编译rapidxml 使用与过程中出现的问题解决
  8. 很认真的聊一聊程序员的自我修养
  9. mysql var和varp的区别_var方差(var和方差的区别)
  10. SpringBoot整合JdbcTemplate(五)
  11. 【WPS】数学公式用插入打的 为什么公式显得比字体靠上
  12. 软件质量管理体系 type:pdf_荆门医疗器械软件注册价格,三类医疗器械注册_上海峦灵...
  13. Linux网络代理服务器搭建及使用
  14. 贴片电阻、贴片电容规格、封装、尺寸·功率(转)
  15. Micropython史上最友好的编辑器,小巧精悍
  16. CCF-CSP 202112-3登机牌条码 解题思路+满分题解+详细注释
  17. uni app 开发微信小程序及上线体验
  18. 【科普】啥是物联网操作系统呢
  19. HuTool工具包实现Excel文件的上传、下载以及修改文件名称
  20. Docker Compose 搭建 Docker Registry 私服

热门文章

  1. 月入1万,在北上广深能过什么样的生活?
  2. 20万RMB!学数据分析的朋友一定要看!
  3. vivo真实案例:中台到底解决了什么问题?
  4. 必知!4张图看尽AI发展史重大里程碑
  5. 值得收藏!数据分析最常用的18个概念,终于有人讲明白了
  6. 如何用Excel快速生成SQL语句,用过的人都说好
  7. 谁说IT男没有审美?怀揣5000元巨款,我们这样改变生活
  8. spring:我是如何解决循环依赖的?
  9. 作为一个死忠粉,我的 IntelliJ IDEA 一直都是这样来设置的,效果很棒!
  10. 别再用if-else了,用注解去代替他吧