uva 1001 dijkstra
来源:互联网 发布:四大网络交流平台 编辑:程序博客网 时间:2024/06/02 04:04
#include <bits/stdc++.h>using namespace std;#define RPE(i,n) for(int i=0;i<(n);i++)const int N = 110;typedef pair<int, int> pii;typedef pair<double, int> pdi;typedef long long LL;int x[N], y[N], z[N], r[N];double dist[N][N];double sdist[N];int vis[N], kase, n;LL dijkstra(int n){memset(vis, 0, sizeof(vis));for (int i = 0; i <= n; i++) sdist[i] = 1e29;priority_queue<pdi, vector<pdi>, greater<pdi> > que;que.push(make_pair(0.0, 0));sdist[0] = 0.0;while (!que.empty()){int x = que.top().second; que.pop();if (vis[x]) continue;vis[x] = 1;for (int i = 0; i <= n; i++){if ( sdist[i] > sdist[x] + dist[x][i] ){sdist[i] = sdist[x] + dist[x][i];que.push(make_pair(sdist[i], i));}}}return round(sdist[n] * 10) + 0.5;}void distan(int n){for (int i = 0; i <= n + 1; i++)for (int j = 0; j <= n + 1; j++){dist[i][j] = 0.0;dist[i][j] = sqrt( pow(x[i] - x[j], 2) + pow(y[i] - y[j], 2) + pow(z[i] - z[j], 2) ) - r[i] - r[j];if (dist[i][j] < 1e-7) dist[i][j] = 0;}}int main(int argc, char const *argv[]){while (cin >> n && n > 0){memset(r, 0, sizeof(r));for (int i = 1; i <= n; i++)cin >> x[i] >> y[i] >> z[i] >> r[i];cin >> x[0] >> y[0] >> z[0] ;cin >> x[n + 1] >> y[n + 1] >> z[n + 1] ;distan(n);cout << "Cheese " << ++kase << ": Travel time = " << dijkstra(n + 1) << " sec\n";}return 0;}
0 0
- uva 1001 dijkstra
- UVA 10806 - Dijkstra, Dijkstra.
- UVA 10806 Dijkstra, Dijkstra.
- UVa:10806 Dijkstra, Dijkstra.
- Uva-10806-Dijkstra, Dijkstra.
- UVA 10806 Dijkstra, Dijkstra.
- uva 10806Dijkstra, Dijkstra.
- UVA 1001 Say Cheese(dijkstra算法)
- UVA - 10806 Dijkstra, Dijkstra. SPFA
- UVA 10806 Dijkstra, Dijkstra. spfa
- UVa 10917 Dijkstra
- uva 11374 Dijkstra
- UVA 10806 Dijkstra, Dijkstra.(费用流)
- uva 10806 - Dijkstra, Dijkstra.(费用流)
- UVA 10806 - Dijkstra, Dijkstra.(费用流)
- UVa 10806 Dijkstra, Dijkstra. 费用流
- WA 了的uva 10806 - Dijkstra, Dijkstra.
- Dijkstra, Dijkstra. - UVa 10806 费用流
- android 图片的加载保存 与 二级缓存
- Postgres SQL 试用第一章 安装琐事
- Python实现读写文件
- test7.16
- 字符串反转
- uva 1001 dijkstra
- noip2010 数字统计 (统计某一数字区间中,2出现的次数)
- smali代码初识
- hdu3635
- mobile angualar ui的简单使用
- linux下的各种函数库略读(POSIX C和ANSI C、GNU C以及ISO C、glib、libc、glibc)
- 数据库JDBC的连接
- 操作系统的中断与异常(陷阱)
- 数组存储字符串