吃奶酪(洛谷-P1433)
题目描述
房间里放着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)相关推荐
- 洛谷P1433 吃奶酪--Java解法(货郎担问题)
洛谷P1433 吃奶酪–Java解法(货郎担问题) 题目链接 解决思想 本题目是一个典型的货郎担问题,即从(0,0)点出发,所有点仅经过依次(我们可以用反证法证明如果有一个点经过两次其路径一定比每个点 ...
- 洛谷 P1433 吃奶酪 dfs剪枝
洛谷 P1433 吃奶酪 dfs剪枝 题解: dfs+剪枝,不过现在好像被卡时间了,第10个点过不了.. 代码如下: #include<iostream> #include<algo ...
- 洛谷 P1433 吃奶酪
这一题用到了状态压缩.然后接下来可以用 dp 或 dfs. 一开始我用的是 dp,不会,然后看题解,dp 写完感觉脑子糊糊的,于是打算写写 dfs. dfs 优化后还是 WA 了一个点,然后又跑去看大 ...
- 【每日一题】洛谷 p1433 吃奶酪 状压dp
- [P1433 吃奶酪](https://www.luogu.com.cn/problem/P1433) 换一种类型,这次求长度最小值,(n<15)接着状压 题目:房间里放着 nn 块奶酪.一 ...
- 洛谷P1433 吃奶酪【dfs】【剪枝】
题目:https://www.luogu.org/problemnew/show/P1433 题意: 给定n个坐标,要求从(0,0)开始走遍所有点,最少经过的路程. 思路: 刚开始想像数字三角形一样适 ...
- 洛谷 - P1433 - 吃奶酪 - dfs
https://www.luogu.org/problemnew/show/P1433 并不是每一个求最短距离就是bfs,这个肯定是dfs. 直接计算15!可以知道枚举必定超时,但是! 我们dfs非常 ...
- 洛谷P1433 吃奶酪
题链 排列 的 装压 两个同类型的状压 No Change G 邦邦的大合唱站队 题目描述 房间里放着 n 块奶酪.一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0)点处. 输入格 ...
- Likecloud-吃、吃、吃(洛谷-P1508)
题目描述 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个n*m(n and m<=200)的矩型的巨型大餐 ...
- 洛谷 深基 第1部分 语言入门 第7章 函数与结构体
P5735 [深基7.例1]距离函数 [深基7.例1]距离函数 - 洛谷 P5735 [深基7.例1]距离函数(python3实现) P5735 [深基7.例1]距离函数(python3实现)_青少年 ...
最新文章
- Majority Element:主元素
- 程序随笔——C++实现的一个线程池
- Fiddler 抓包详细使用教程
- Android中列表动态删除item,如何删除Android ExpandableListView中某个group item的child item?...
- gevent版TCP服务器
- web安全day28:一文读懂Linux日志,运维工程师必备
- g ++在linux下编译rapidxml 使用与过程中出现的问题解决
- 很认真的聊一聊程序员的自我修养
- mysql var和varp的区别_var方差(var和方差的区别)
- SpringBoot整合JdbcTemplate(五)
- 【WPS】数学公式用插入打的 为什么公式显得比字体靠上
- 软件质量管理体系 type:pdf_荆门医疗器械软件注册价格,三类医疗器械注册_上海峦灵...
- Linux网络代理服务器搭建及使用
- 贴片电阻、贴片电容规格、封装、尺寸·功率(转)
- Micropython史上最友好的编辑器,小巧精悍
- CCF-CSP 202112-3登机牌条码 解题思路+满分题解+详细注释
- uni app 开发微信小程序及上线体验
- 【科普】啥是物联网操作系统呢
- HuTool工具包实现Excel文件的上传、下载以及修改文件名称
- Docker Compose 搭建 Docker Registry 私服