poj2502 最短路
//Accepted 504 KB 16 ms
//spfa最短路
//把n个地铁站作为n个顶点,边权为从一个站到另一个站的时间
//注意:地铁在相邻的两站之间是直线行驶,但其他的就不是了
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <cmath>
#include <algorithm>
using namespace std;
/**
* This is a documentation comment block
* 如果有一天你坚持不下去了,就想想你为什么走到这儿!
* @authr songt
*/
;
const double inf = 1000000000000000000.0;
double x[imax_n];
double y[imax_n];
double a[imax_n][imax_n];
double dis[imax_n];
bool vis[imax_n];
int n;
double getDis(double x1,double y1,double x2,double y2)
{
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
void init()
{
;i<=n;i++)
{
;j<=n;j++)
{
)
{
a[i][j]=getDis(x[i],y[i],x[j],y[j])*;
//printf("%d %d ==> %d %d\n",x[i],y[i],x[j],y[j]);
}
}
}
}
bool relax(int u,int v,double c)
{
)
{
dis[v]=dis[u]+c;
return true;
}
return false;
}
queue<int > q;
bool spfa(int src)
{
while (!q.empty()) q.pop();
;i<=n;i++)
dis[i]=inf;
dis[src]=;
memset(vis,,sizeof(vis));
q.push(src);
vis[src]=true;
while (!q.empty())
{
int pre=q.front();
q.pop();
vis[pre]=false;
;i<=n;i++)
if (relax(pre,i,a[pre][i]) && !vis[i])
{
vis[i]=true;
q.push(i);
}
}
}
int main()
{
scanf(],&y[],&x[],&y[]);
n=;
double ca,cb;
int start,end;
;
;i<imax_n;i++)
{
;j<imax_n;j++)
a[i][j]=0.0;
}
while (scanf("%lf%lf",&ca,&cb)!=EOF)
{
&& cb==-)
{
end=n;
for (int i=start;i<end;i++)
{
a[i][i+]=a[i+][i]=getDis(x[i],y[i],x[i+],y[i+])*;
//printf("%d %d ==> %d %d\n",x[i],y[i],x[j],y[j]);
}
flag=;
continue;
}
++n;
x[n]=ca;
y[n]=cb;
)
{
start=n;
flag=;
}
}
init();
spfa();
printf(]);
;
}
poj2502 最短路的更多相关文章
- poj2502最短路!
have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of getting to ride ...
- POJ-2502(Dijikstra应用+最短路)
Subway POJ-2502 这里除了直接相连的地铁站,其他图上所有的点都要连线,这里是走路的速度. 记住最后的结果需要四舍五入,否则出错. #include<iostream> #in ...
- POJ2502:Subway(最短路)
Subway Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14634 Accepted: 4718 题目链接:http ...
- POJ-2502 Subway( 最短路 )
题目链接:http://poj.org/problem?id=2502 Description You have just moved from a quiet Waterloo neighbourh ...
- bzoj1001--最大流转最短路
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路:这应该算是经典的最大流求最小割吧.不过题目中n,m<=1000,用最大流会TLE, ...
- 【USACO 3.2】Sweet Butter(最短路)
题意 一个联通图里给定若干个点,求他们到某点距离之和的最小值. 题解 枚举到的某点,然后优先队列优化的dijkstra求最短路,把给定的点到其的最短路加起来,更新最小值.复杂度是\(O(NElogE) ...
- Sicily 1031: Campus (最短路)
这是一道典型的最短路问题,直接用Dijkstra算法便可求解,主要是需要考虑输入的点是不是在已给出的地图中,具体看代码 #include<bits/stdc++.h> #define MA ...
- 最短路(Floyd)
关于最短的先记下了 Floyd算法: 1.比较精简准确的关于Floyd思想的表达:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B.所以,我们假设maz ...
- bzoj1266最短路+最小割
本来写了spfa wa了 看到网上有人写Floyd过了 表示不开心 ̄へ ̄ 改成Floyd试试... 还是wa ヾ(。`Д´。)原来是建图错了(样例怎么过的) 结果T了 于是把Floyd改回spfa 还 ...
随机推荐
- python学习之字符串变量
1.字符串引用变量 name="Jasper" age=23 msg="my name is %s,my age is %s"%(name,age) print ...
- logstash filter grok 用法
在elk+filebeat都安装好,且明白了基本流程后,主要的就是写logstash的filter了,以此来解析特定格式的日志 logstash的filter是用插件实现的,grok是其中一个,用来解 ...
- [问题2014S14] 解答
[问题2014S14] 解答 首先, 满足条件的 \(\varphi\) 的全体特征值都为零. 事实上, 任取 \(\varphi\) 的特征值 \(\lambda\), 对应的特征向量为 \(0\ ...
- 《Effective C#》:区别和认识四个判等函数
.Net有四个判等函数?不少人看到这个标题,会对此感到怀疑.事实上确是如此,.Net提供了ReferenceEquals.静态Equals,具体类型的Equals以及==操作符这四个判等函数.但是这四 ...
- HTML 方法
姓名输入框:<input type="text" value="默认有值"/> 密码输入框:<input type="text&qu ...
- ReactiveCocoa信号使用方法
最近研究RAC时都是基于UI控件来使用,对单独的signal没有使用过,最近在网上看到一篇文章是关于RAC单独signal的使用.在学习整理后将个人觉得能帮助用于UI控件的一些signal使用方法记录 ...
- [css] CSS相对定位|绝对定位
第一篇链接:http://www.zhangxinxu.com/wordpress/2010/12/css-%E7%9B%B8%E5%AF%B9%E7%BB%9D%E5%AF%B9%E5%AE%9A% ...
- json和xml数据的解析
一 json数据 1一条json就像一个对象,也想像OC中的数组,且内嵌了很多键值对字典 {"name" : "jack", "age" : ...
- Python_Day1_基础1
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...
- zabbix3.0.4 部署之一 (简介)
官方网站:http://www.zabbix.com/ 下载地址:http://www.zabbix.com/download.php zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视 ...