
【洛谷_P1433】吃奶酪
发布日期:2021-05-06 16:00:37
浏览次数:8
分类:技术文章
本文共 825 字,大约阅读时间需要 2 分钟。
吃奶酪
题目描述
房间里放着 n 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0) 点处。
输入格式
第一行有一个整数,表示奶酪的数量 n。
第 2 到第 (n + 1) 行,每行两个实数,第 (i + 1) 行的实数分别表示第 i 块奶酪的横纵坐标 x_i, y_i
输出格式
输出一行一个实数,表示要跑的最少距离,保留 2 位小数。
输入输出样例
输入 #1
41 11 -1-1 1-1 -1
输出 #1
7.41
解题思路
这道题,我们分析数据:1<=n<=15。所以 《 很 显 然 》,这道题是用状压DP,动转移方程如下
: f [ i ] [ k ] = m i n ( f [ i ] [ k ] , f [ j ] [ k − ( 1 < < i − 1 ) ] + h h ( i , j ) ) f[i][k]=min(f[i][k],f[j][k-(1<<i-1)]+hh(i,j)) f[i][k]=min(f[i][k],f[j][k−(1<<i−1)]+hh(i,j)) 然后进行几个特判,赋个初值,就差不多了#include#include #include using namespace std;int n; double x[20],y[20];double f[30][1<<15],ans=0x3f3f3f3f;double hh(int i,int j){ return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}int main(){ cin>>n; for(int i=1;i<=n;i++) scanf("%lf%lf",&x[i],&y[i]); for(int i=1;i<=n;i++) for(int j=1;j<(1<
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月31日 13时14分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构与算法学习1-----稀疏数组
2019-03-03
Java转换xml格式时间 (yyyy-MM-ddTHH:mm:ss.SSSZ)
2019-03-03
Python 使用 __getstate__ 和 __setstate__ 魔法方法
2019-03-03
关于json
2019-03-03
焦点事件
2019-03-03
webpack打包常见报错
2019-03-03
vuex—1vuex初始
2019-03-03
axios服务器通信—1axios介绍和使用mock数据
2019-03-03
web前端面试一从输入url到看到页面发生了什么
2019-03-03
IO复用之epoll
2019-03-03
智慧水利的泵站自动化监控系统解决方案
2019-03-03
C getopt.h
2019-03-03
CentOS下Nvidia docker 2.0之安裝教程&踩坑實錄
2019-03-03
H5页面授权获取微信授权(openId,微信nickname等信息)
2019-03-03
SpringBoot的URL是如何拼接的
2019-03-03
2018年年终总结
2019-03-03
解决checkbox未选中不传递value的多种方法
2019-03-03