JZOJ 3517. 空间航行
题目
Description
船上老旧的曲速引擎的速度是0.1AU/s。然而,在太空中分布着许多殖民星域,这些星域可以被看成一个球。在星域的内部,你可以在任何地方任意次跳跃到星域内部的任意一个点,不花费任何时间。
你希望算出到达终点的最短时间。
Input
对于每一组数据,第一行包含一个正整数n,表示殖民星域的数量。
接下来n 行,第i 行包含四个整数Xi,Yi,Zi,Ri,表示第i个星域的中心坐标为(Xi, Yi,Zi),星域的半径是Ri。
接下来两行,第一行包含值Xa,Ya,Za,告诉你当前坐标为(Xa, Ya,Za)。
第二行包含值Xo,Yo,Zo,告诉你目的地坐标为(Xo, Yo,Zo)。
输入以一行单独的-1 结尾。所有坐标的单位都是天文单位(AU)。
Output
Sample Input
1 20 20 20 1 0 0 0 0 0 10 1 5 0 0 4 0 0 0 10 0 0 -1
Sample Output
100 20
Data Constraint
对于10% 的数据,n = 0。
对于30% 的数据,0<=n<=10。
对于100% 的数据,0<=n<=100,所有坐标的绝对值<=10000 ,半径r<=10000。
你可以认为,你所在的星区的大小为无限大。
分析
- 首先我们考虑如何搞定一个三维的图
- 将他搞成平面
- 那我们就考虑如何跑最短路呢?
- 星系之间的连边就是,原距离减去两个半径
- 如果小于0
- 那么距离就是0
代码
1 #include<iostream> 2 #include<queue> 3 #include<cmath> 4 #include<cstring> 5 #include<cstdio> 6 using namespace std; 7 struct sb 8 { 9 double x,y,z,r; 10 }a[201]; 11 double map[201][201]; 12 int n; 13 double calc(int i,int j) 14 { 15 long long a1=(a[i].x-a[j].x)*(a[i].x-a[j].x); 16 long long b1=(a[i].y-a[j].y)*(a[i].y-a[j].y); 17 long long c1=(a[i].z-a[j].z)*(a[i].z-a[j].z); 18 long long sum=a1+b1+c1; 19 double k=sqrt(sum); 20 if (k-a[i].r-a[j].r>0) return k-a[i].r-a[j].r; 21 else return 0; 22 } 23 int vis[201]; 24 double dis[201]; 25 void spfa() 26 { 27 queue<int> q; 28 for (int i=0;i<=n+1;i++) dis[i]=1000000000.0000; 29 memset(vis,0,sizeof(vis)); 30 dis[0]=0; vis[0]=1; q.push(0); 31 while (!q.empty()) 32 { 33 int x=q.front(); q.pop(); vis[x]=0; 34 for (int i=0;i<=n+1;i++) 35 { 36 if (map[x][i]>=0&&dis[i]>dis[x]+map[x][i]) 37 { 38 dis[i]=dis[x]+map[x][i]; 39 if (!vis[i]) 40 { 41 q.push(i); 42 vis[i]=1; 43 } 44 } 45 } 46 } 47 } 48 int main () 49 { 50 // freopen("warp.in","r",stdin); 51 // freopen("warp.out","w",stdout); 52 cin>>n; 53 while (n!=-1) 54 { 55 memset(map,0,sizeof(map)); 56 memset(a,0,sizeof(a)); 57 for (int i=1,x,y,z,r;i<=n;i++) 58 cin>>a[i].x>>a[i].y>>a[i].z>>a[i].r; 59 cin>>a[0].x>>a[0].y>>a[0].z; 60 cin>>a[n+1].x>>a[n+1].y>>a[n+1].z; 61 for (int i=0;i<=n+1;i++) 62 for (int j=i;j<=n+1;j++) 63 { 64 if (i==j) map[i][j]=-1; 65 else 66 map[i][j]=map[j][i]=calc(i,j); 67 } 68 spfa(); 69 cout<<round(dis[n+1]*10)<<endl; 70 cin>>n; 71 } 72 }
转载于:https://www.cnblogs.com/zjzjzj/p/11391129.html
JZOJ 3517. 空间航行相关推荐
- 2019中山纪念中学夏令营-Day21[JZOJ]
2019中山纪念中学夏令营-Day21[JZOJ] 提高组(B组模拟赛)Team_B (由于本人太弱,并没有订正完题目) (题解大部分是从官方题解文件上摘来的) 日常膜拜大神:じやゆん蒟蒻 正文部分: ...
- 拥有微软Windows CE的实时系统
介绍 Microsoft Windows CE 快速反应的嵌入式应用常常管理严格的时间反应.例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中"有线"控制,武器发 ...
- 2019.08.21【NOIP提高组】模拟 B 组 dfs、最小生成树+二分、dp+计算几何、floyed+dfs、spfa
文章目录 0 最小比例(ratio) 1 软件公司(company) 2 空间航行(warp) 3 摧 毁 巴士站(bus) 0 最小比例(ratio) 图中共有N个点的完全图,每条边都有权值,每个点 ...
- HDU1290 献给杭电五十周年校庆的礼物 平面分割空间问题
点击打开链接 献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- [jzoj NOIP2018模拟 11.01]
很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...
- 哈里森,史上最具空间价值的钟表匠
原文地址:http://sztqb.sznews.com/html/2008-03/25/content_110854.htm 不久前,在"大师日历"栏目里,我们编发了<库克 ...
- SSLOJ 1459.空间简单度【扫描线】【线段树】
... 题意: 分析: 代码: 题意: 给出一棵树以及若干条边 给出一个定值kkk,求有多少条路径的空间简单度>k>k>k 而空间简单度的定义如下: 分析: 这道题和JZOJ(GMO ...
- 【赛博学】这才是元宇宙-三层空间-现实-经济-网络
本文是<赛博空间学与赛博学>的第一章-[导论]的第一节(1.1). 赛博是Cyber音译,源于希腊文Kyber,原意为舵手.它的含义是舵手掌握着船航行的方向,因此有掌握者.控制者,也就是领 ...
- KingbaseES V8R6 集群运维案例 -- 磁盘空间问题导致集群故障
某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换.客户要求说明具体的原因. KingbaseES读写分离集群基本信息: KingbaseES集群信息 操作系统 ...
最新文章
- initialize方法与load方法比较
- ARM和NEON指令 very nice
- MySQL表名后接t_mysql表名忽略大小写
- 初识THINKPHP--关于路径的问题(xampp下的htdocs为根目录)
- matlab基于dct的图像压缩编码解码_基于深度学习的视频压缩方法简介
- 星辰数据空号检测API文档
- 成为嵌入式高手,少不了这100多个软硬件开源项目!
- RTKLIB源码之单点定位/相对定位后处理简化版—第一版
- Python 流媒体播放器(基于VLC)
- 有些人无缘再见,却一生想念
- 13步设计出一个ITSM系统
- 临别给《生活大爆炸》做个台词数据分析,你猜谢耳朵最爱说什么?
- AI智能语音电销机器人能高效取代繁杂的电话工作
- Linux命令:reboot
- c 与易语言程序间通信,易语言与三菱PLC通信-FX系列
- 如何将pdf转换成ppt演讲稿
- CSS的浮动以及清楚浮动的方法
- Yahoo!创始人:杨致远的故事
- 使用VS2015 VC++第一步 写一个hello world程序
- 1句话搞明白啥是码元、啥是比特率、啥是波特率
热门文章
- 【React教学】通用型DataTable组件——400行内
- Ceph Block Device块设备操作
- Android M(6.0) 权限相关
- JAVA中String类
- PowerShell 扩展工具第二波!
- Linux Virtual Server LVS Load Balancing
- 调用webserver时出现:请求因 HTTP 状态 401 失败: Unauthorized。
- 一个简单的GTK的例子程序
- Entity Framework 学习总结之三:架构组成介绍
- AJAX vs FLEX:执行,传送,解析JSON,HTML,XML,AFM格式效率比较.