当前位置: 首页 > news >正文

海外建站服务平台涟水建设银行网站

海外建站服务平台,涟水建设银行网站,html5 mysql 网站开发,杨浦网站建设_网站外包题目描述胖虎惊喜地发现了有N个窗口有他最喜欢吃的菜(其实都喜欢?),但是他想在移动最短距离(毕竟走多了也是会累的)的情况下吃到所有他喜欢吃的菜品,饥饿的他已经没有力气写出代码来计算自己的最…
题目描述

胖虎惊喜地发现了有N个窗口有他最喜欢吃的菜(其实都喜欢?),但是他想在移动最短距离(毕竟走多了也是会累的)的情况下吃到所有他喜欢吃的菜品,饥饿的他已经没有力气写出代码来计算自己的最佳方法了,所以他找到了你,来帮他解决这个问题。现在给你N个窗口及窗口的坐标,请输出胖虎所要移动的最小距离总和。
胖虎一开始在(0,0)点处。

输入

第一行一个正整数n(1≤n≤13) 。
接下来每行2个实数,表示第i块窗口的坐标。
两点之间的距离公式为\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

输出

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

样例输入
4
1 1
1 -1
-1 1
-1 -1
样例输出
7.41
思路分析

旅行商问题(TSP)的变种问题,采用状态压缩DP。

1.读入n个点的横纵坐标(0-based indexing)。

2.计算n个点相互之间的直线距离,点i与点j之间的直线距离就是dist[i][j]。

3.dp[s][i]表示在状态s下,到达i点的最短距离。s是一个二进制数(位表示访问状态),如0b1011,包含0,1,3(11=1\times2^0+1 \times 2^1+0\times2^2+ 1\times 2^3)。记得初始化dp数组为较大的数。

当s=2^i(0\leqslant i\leqslant n-1)时,dp[s][i]就等于起点(0,0)到点i的直线距离。

4.外层循环遍历状态s(1\leqslant s\leqslant 2^n-1),内层循环遍历n个点(0\leqslant i\leqslant n-1),如果状态s包含点i,计算前一个状态s0=s^(1<<i)(即去掉点i的状态),遍历s0中所有可能的j点(0\leqslant j\leqslant n-1),如果s0包含j点,则更新dp[s][i]=min(dp[s0][j]+dist[i][j],dp[s][i])。

5.遍历n个点,比较dp[1<<n-1][i],找到经过所有点后、以点i为终点的最短路程。

代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
double x[14],y[14],res=1e9,dist[14][14];
int main()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;for(int i=0;i<n;i++){cin>>x[i]>>y[i];}for(int i=0;i<n;i++){for(int j=0;j<n;j++){dist[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));dist[j][i]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}}vector<vector<double>>dp(1<<14,vector<double>(14,1e9));for(int i=0;i<n;i++){dp[1<<i][i]=sqrt(x[i]*x[i]+y[i]*y[i]);}for(int s=1;s<(1<<n);s++){for(int i=0;i<n;i++){if(s&(1<<i)){int s0=s^(1<<i);for(int j=0;j<n;j++){if(s0&(1<<j)){dp[s][i]=min(dp[s0][j]+dist[i][j],dp[s][i]);}}}}}int full=(1<<n)-1;for(int i=0;i<n;i++){res=min(dp[full][i],res);}cout<<fixed<<setprecision(2)<<res;return 0;
}

http://www.dtcms.com/a/462906.html

相关文章:

  • 如何破解网站后台密码防水网站建设
  • 怎么做类似站酷的网站建设充值网站多钱
  • 如何把电脑改成服务器 做网站大连建站费用
  • 网站建设规模用什么形容西宁好的网站建设
  • c++26新功能—indirect<T>和polymorphic<T>
  • 网站建设方案文本模板网站服务器环境不支持mysql数据库
  • 网站建设费可以一次性冲费用吗手机免费建设网站制作
  • string的自主实现
  • usart波特率为9600和115200时,发送一句话所耗费的时间分别是多少
  • 灌南住房建设局网站网站建设收费标准不一
  • 前端学习手机网站开发吗黄金网站软件免费
  • 网站建设认知与理解营销平台建设
  • 免费创建属于自己的网站呼和浩特百度seo
  • k8s-pod部署java应用,jvm内存正常,但是pod内存不足oom排查
  • 公司网站建设合同需要交印花税中山专业网站建设模板代理
  • 网站开发需要解决难题项目网络图经常被称为
  • OSPF的高级特性
  • 安徽省建设工程造价管理网站wordpress嵌入php代码
  • 专门做网站的app怎样做网络推广优选豪升网络好
  • 网站空间150m跨境电商平台有哪些?列举5个
  • 怎么做网盘网站高培淇自己做的网站
  • spring ai mcp + 编写自动测试mcp服务端功能
  • 设备管理平台项目部署实验流程
  • 织梦网站文章发布信息模板下载去掉wordpress 上一篇
  • 有铁芯直线电机扰动力建模方法介绍
  • 图解 bulkProcessor(调度器 + bulkAsync() + Semaphore)
  • 监控系统3 - LVGL
  • 20-数组
  • 防水补漏东莞网站建设河北省建设厅办事大厅网站
  • logosc网站怎么做的减少wordpress响应时间