题目描述

又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I个城市中高速铁路了的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。

图例(从上而下)

机场 高速铁路

飞机航线

  注意:图中并没有

标出所有的铁路与航线。

那么Car应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。

找出一条从城市A到B的旅游路线,出发和到达城市中的机场可以任意选取,要求总的花费最少。

输入输出格式

输入格式:

第一行为一个正整数n(0<=n<=10),表示有n组测试数据。

每组的第一行有四个正整数s,t,A,B。

S(0<S<=100)表示城市的个数,t表示飞机单位里程的价格,A,B分别为城市A,B的序号,(1<=A,B<=S)。

接下来有S行,其中第I行均有7个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的(xi1,yi1),(xi2,yi2),(xi3,yi3)分别是第I个城市中任意三个机场的坐标,T I为第I个城市高速铁路单位里程的价格。

输出格式:

共有n行,每行一个数据对应测试数据。 保留一位小数

输入输出样例

输入样例#1:

1
3 10 1 3
1 1 1 3 3 1 30
2 5 7 4 5 2 1
8 6 8 8 11 6 3

输出样例#1:

47.5qvkongbu:
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>#define y1 mmpusing namespace std;const int M(2333);
const int N(110<<2);
const double INF(1e15);int n,city_num,A,B;
double dis[N][N],ans;
int air_cost,road_cost[N];
int x1,x2,x3,x4,y1,y2,y3,y4,d1,d2,d3;struct Node
{int x,y;Node(int x=0,int y=0): x(x),y(y) {}
}airport[M];int Get_dis(int a,int aa,int b,int bb)
{return (a-b)*(a-b)+(aa-bb)*(aa-bb);
}void init()
{memset(dis,0,sizeof(dis));memset(airport,0,sizeof(airport));    memset(road_cost,0,sizeof(road_cost));
}int main()
{scanf("%d",&n);for(;n;n--){init();scanf("%d%d%d%d",&city_num,&air_cost,&A,&B);for(int i=1;i<=city_num;i++){scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3);scanf("%d",road_cost+i);d1=Get_dis(x1,y1,x2,y2);d2=Get_dis(x2,y2,x3,y3);d3=Get_dis(x3,y3,x1,y1);if(d1>d2&&d1>d3)x4=x1+x2-x3,y4=y1+y2-y3;else if(d2>d1&&d2>d3)x4=x2+x3-x1,y4=y2+y3-y1;else if(d3>d1&&d3>d2)x4=x3+x1-x2,y4=y3+y1-y2;airport[(i<<2)-3]=Node(x1,y1);airport[(i<<2)-2]=Node(x2,y2);airport[(i<<2)-1]=Node(x3,y3);airport[(i<<2)-0]=Node(x4,y4);}for(int i=0;i<=(city_num<<2);i++)for(int j=0;j<=(city_num<<2);j++)if(i!=j) dis[i][j]=INF;for(int i=0;i<=(city_num<<2);i++)for(int j=0;j<=(city_num<<2);j++){double dist=sqrt(Get_dis(airport[i].x,airport[i].y,airport[j].x,airport[j].y));if(i+3>>2==j+3>>2)dis[i][j]=dist*(road_cost[i+3>>2]);elsedis[i][j]=dist*air_cost;}dis[0][(A<<2)-3]=0;dis[0][(A<<2)-2]=0;dis[0][(A<<2)-1]=0;dis[0][(A<<2)-0]=0;for(int k=0;k<=(city_num<<2);k++)for(int i=0;i<=(city_num<<2);i++)for(int j=0;j<=(city_num<<2);j++)dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);ans=min(min(dis[0][(B<<2)-3],dis[0][(B<<2)-2]),min(dis[0][(B<<2)-1],dis[0][B<<2]));printf("%.1lf\n",ans);}return 0;
}

  

转载于:https://www.cnblogs.com/lyqlyq/p/7216868.html

luogu P1027 Car的旅行路线相关推荐

  1. 洛谷 P1027 Car的旅行路线

    洛谷 P1027 Car的旅行路线 题目描述 又到暑假了,住在城市 A 的 Car 想和朋友一起去城市 B 旅游.她知道每个城市都有 4 个飞机场,分别位于一个矩形的 4 个顶点上,同一个城市中 2  ...

  2. 玄学题目:洛谷P1027 Car的旅行路线 (写代码就是为了快乐.jpg!

    题目描述 又到暑假了,住在城市 A 的 Car 想和朋友一起去城市旅游. 她知道每个城市都有 4 个飞机场,分别位于一个矩形的 4 个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第 i个城市 ...

  3. 洛谷P1027 Car的旅行路线 计算几何 图论最短路

    题意 求某城到某城的最小花费 一个城中有四个机场,一个城中的机场相互可达,用公路到达,但是不同城的公路的单位路程的 费不同,两个不同城的机场(我不知道相同城可不可以)可以通过机场到达,且飞机单位路程价 ...

  4. P1027 [NOIP2001 提高组] Car 的旅行路线 (图 最短路)

    原题链接:[NOIP2001 提高组] Car 的旅行路线 - 洛谷 AC代码: #include<bits/stdc++.h> using namespace std; #define ...

  5. 【离散数学】实验 旅行路线规划问题

    实验要求 实验目的:加深图的汉密尔顿路及最短路径的理解与应用 实验内容:搜索某旅游城市地图(至少包含10个景点),随机选取出发地点,基于图论理论建立模型,给出合理的旅行路线.要求考虑时间.成本等因素. ...

  6. 【codevs1041NOIP01TG】Car的旅行路线,最短路中的数学题

    Car的旅行路线 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 又到暑假了,住在城市A的Car想和朋友一 ...

  7. AI 旅行工具大盘点!31 款 AI 旅行行程规划工具,一键规划旅行路线!

    0. 未来百科 未来百科(https://nav.6aiq.com),是一个知名的AI产品导航网站 -- 为发现全球优质AI工具而生 .目前已 聚集全球3000+优质AI工具产品 ,旨在帮助用户发现全 ...

  8. 旅游路线最短matlab,动态规划求最短旅行路线.doc

    动态规划求最短旅行路线.doc 动态规划求最短旅行路线摘要在我们日常生活和旅行中经常遇到求最短路径的问题,将动态规划思想运用到求解旅行问题最短路径中,将过程划分为几个阶段,在每阶段中选取最优策略,最后 ...

  9. 简单的基于地理图片的旅行路线还原

    在学校时关注基于地理信息的数据挖掘已久,毕业后几无涉足.本文小结当时的一些工作--基于带地理信息的图片的旅行路线还原,也就是通过人们分享的少量图片,还原出用户旅行时的完整的旅行路线.主要方法是先基于H ...

最新文章

  1. OSError: Unable to download 'ffmpeg.win32.exe'. Perhaps there is a no internet connection? If there
  2. 阿里云安全中心:自动化安全闭环实现全方位默认安全防护
  3. 相似图片检测:感知哈希算法之dHash的Python实现
  4. npoi生成的表格数字左上角_如何用openpyxl自动化编写Excel电子表格 进阶篇 下
  5. mac json格式化工具_一个在 MAC 上 iOS/Flutter 开发的辅助工具
  6. 有效的单元测试--总结
  7. 由于找不到appvisvsubsystems32.dll_ftp软件搜索不到,ftp软件搜索不到的2种原因
  8. ubuntu1804系统设置在哪里_电销呼叫系统CRM功能设计
  9. (转)谷歌安卓官方教程中文版
  10. inceptor手册
  11. 利用python中的pygame模块开发fc坦克大战(可自定义地图,包括部分素材)
  12. 手机上什么App能连接mysql_这款APP让你的手机瞬间变身服务器,php+mysql,太硬核了!...
  13. 电磁阀peakhold驱动
  14. 手把手教你Linux内核编译(三天吐血经历)
  15. 2022年节约用水倡议书
  16. python画笔速度调为最高_【python入门系类课程 第三课 神奇的画笔】
  17. DOTA英雄 精美图片 大集合
  18. 数据结构和算法 第六天内核链表是链表的终结者
  19. mysql中的表自增的id太大了,可以重新设置自增起始值
  20. 爬虫实战 | 采集可视化知乎问题的回答

热门文章

  1. MYSQL中TIMESTAMP类型的默认值
  2. ActiveMQ传输文件的几种方式原理与优劣
  3. HyperLedger Fabric Introduction——区块链超级账本介绍
  4. php防止恶意频繁刷新页面或form提交
  5. R-ArcGIS探秘(1)安装以及Sample执行
  6. Codeforces Beta Round #9 (Div. 2 Only) C. Hexadecimal's Numbers dfs
  7. Android Studio导出Jar包并混淆
  8. 寄语2013应届实习生
  9. linux下Makefile的简单例子及解释
  10. vlan网络下的设置