传送门

建图麻烦,建完图搞一遍Floyd就好了。

——代码

 #include <iostream>
#include <cstdio>
#include <cmath> using namespace std; int n, s, a, b;
int t, x[][], y[][], T[];
double map[][], ans; inline int square(int ax)
{
return ax * ax;
} inline int dis(int ax, int ay, int bx, int by)
{
return square(ax - bx) + square(ay - by);
} int main()
{
int i, j, k;
scanf("%d", &n);
while(n--)
{
scanf("%d %d %d %d", &s, &t, &a, &b);
for(i = ; i < * s; i++)
for(j = ; j < * s; j++)
map[i][j] = ;
ans = ;
for(i = ; i < s; i++)
{
scanf("%d %d %d %d %d %d %d", &x[i][], &y[i][], &x[i][], &y[i][], &x[i][], &y[i][], &T[i]);
if(dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][])
&& dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][]))
{
x[i][] = x[i][] + x[i][] - x[i][];
y[i][] = y[i][] + y[i][] - y[i][];
}
else if(dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][])
&& dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][]))
{
x[i][] = x[i][] + x[i][] - x[i][];
y[i][] = y[i][] + y[i][] - y[i][];
}
else if(dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][])
&& dis(x[i][], y[i][], x[i][], y[i][]) > dis(x[i][], y[i][], x[i][], y[i][]))
{
x[i][] = x[i][] + x[i][] - x[i][];
y[i][] = y[i][] + y[i][] - y[i][];
}
map[ * i][ * i + ] = map[ * i + ][ * i] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
map[ * i][ * i + ] = map[ * i + ][ * i] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
map[ * i][ * i + ] = map[ * i + ][ * i] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
map[ * i + ][ * i + ] = map[ * i + ][ * i + ] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
map[ * i + ][ * i + ] = map[ * i + ][ * i + ] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
map[ * i + ][ * i + ] = map[ * i + ][ * i + ] = sqrt(dis(x[i][], y[i][], x[i][], y[i][])) * T[i];
for(j = ; j < * i; j++)
for(k = * i; k < * i + ; k++)
map[k][j] = map[j][k] = sqrt(dis(x[j / ][j % + ], y[j / ][j % + ], x[k / ][k % + ], y[k / ][k % + ])) * t;
}
for(i = ; i < * s; i++) map[i][i] = ;
for(k = ; k < * s; k++)
for(i = ; i < * s; i++)
for(j = ; j < * s; j++)
map[i][j] = min(map[i][j], map[i][k] + map[k][j]);
for(i = * a - ; i < * a; i++)
for(j = * b - ; j < * b; j++)
ans = min(ans, map[i][j]);
printf("%.1f\n", ans);
}
return ;
}

[luoguP1027] Car的旅行路线(Floyd)的更多相关文章

  1. Car的旅行路线(Floyd+模拟)

    题目地址 贼鸡儿猥琐的一道题 好在数据不毒瘤,而且Floyd就OK了. 这道题的难点在于 建图,也很考验模拟能力,需要十分的有耐心. 建图 题目中告诉了我们一个矩形的三个点 我们在平面直角坐标系中随便 ...

  2. Luogu-P1027 Car的旅行路线 已知三点确定矩形 + 最短路

    传送门:https://www.luogu.org/problemnew/show/P1027 题意: 图中有n个城市,每个城市有4个机场在矩形的四个顶点上.一个城市间的机场可以通过高铁通达,不同城市 ...

  3. Car的旅行路线 luogu P1027 (Floyd玄学Bug有点毒瘤)

    luogu题目传送门! Car的旅行路线  问题描述 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一 ...

  4. NOIP2001 Car的旅行路线

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

  5. 洛谷P1027 Car的旅行路线

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

  6. 洛谷 P1027 Car的旅行路线

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

  7. [NOIP2001提高组]CODEVS1014 Car的旅行路线(最短路)

    最短路,这个不难想,但是要为它加边就有点麻烦..还好写完就过了(虽然WA了一次,因为我调试用的输出没删了..),不然实在是觉得挺难调的.. ------------------------------ ...

  8. GDOI2015小Z的旅行路线

    GDOI2015小Z的旅行路线 题意: \(n\)个点的无根树,边上有权值. \(q\)个询问\(s\)和\(s\),问从\(s\)出发,找一条最长路(不经过重复点),保证路径上所有边边权不超过\(x ...

  9. 【Foreign】旅行路线 [倍增]

    旅行路线 Time Limit: 20 Sec  Memory Limit: 256 MB Description Input Output 仅一行一个整数表示答案. Sample Input 3 2 ...

随机推荐

  1. C#中构造函数和析构函数区别

    把对象的初始化工作放在构造函数中,把清除工作放在析构函数中.当对象被创建时,构造函数被自动执行.当对象消亡时,析构函数被自动执行.这样就不用担心忘记对象的初始化和清除工作. 析构函数是由垃圾回收器控制 ...

  2. img 标签访问图片返回403forbidden

    做百度编辑器时,从秀米复制过来的文档,图片不无法加载,返回403的错 解决办法 解决这个问题只需要在头部添加一个meta <meta name="referrer" cont ...

  3. Android Platform Version 和 API Level对照

    Platform Version API Level VERSION_CODE Notes Android 5.1 22 LOLLIPOP_MR1 Platform Highlights Androi ...

  4. PL/SQL学习笔记(三)

    -----创建一个序列,再创建一个表(主键是数字),通过序列生成该表的主键值. create table mytb1( m_id number primary key, m_name ) not nu ...

  5. IOStableviewsectionSet

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {     if (t ...

  6. 机器学习在SAP Cloud for Customer中的应用

    关于机器学习这个话题,我相信我这个公众号1500多位关注者里,一定有很多朋友的水平比Jerry高得多.如果您看过我以前两篇文章,您就会发现,我对机器学习仅仅停留在会使用API的层面上. 使用Java程 ...

  7. es 集群部署

    下载 [root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1 ...

  8. GetForgroundWindow函数的不确定性——BUG笔记

    HWND GetForgoundWindows() 获取当前前置窗口在windows 7和windows 10下虚拟桌面切换后表现不同. 所以强烈不建议使用此函数!

  9. 浅谈nodejs与npm

    (1)npm介绍 在正式介绍Node.js学习之前,我们先认识一下npm. npm是什么东西?npm其实是Node.js的包管理工具(package manager). 为啥需要一个包管理工具呢?因为 ...

  10. 二分 || UOJ 148 跳石头

    L距离中有n块石头,位置在d[i], 移走m块,使从起点0跳到终点l时,每次跳跃的最小距离最大,求这个最小距离 *解法:想到二分(想不到),对要求的结果进行二分,于是对最小距离二分== #includ ...