1205. By the Underground or by Foot?(spfa)
简单题 有一些小细节 两个站可能不相连 但是可以走过去
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define INF 0xfffffff
vector<int>ed[];
double v1,v2,x[],y[],w[][],dis[];
int n,vis[],pa[],o[];
void spfa(int s,int e)
{
int i;
for(i = ; i <= n ; i++)
dis[i] = INF;
dis[s] = ;
queue<int>q;
vis[s] = ;
q.push(s);
while(!q.empty())
{
int u = q.front();
q.pop();
vis[u] = ;
for(i = ; i < (int)ed[u].size() ; i++)
{
int v = ed[u][i];
if(dis[v]>dis[u]+w[u][v])
{
pa[v] = u;
dis[v] = dis[u]+w[u][v];
if(!vis[v])
{
vis[v] = ;
q.push(v);
}
}
}
}
printf("%.7lf\n",dis[e]);
int g = ,x=e;
while(pa[x]!=s)
{
x = pa[x];
g++;
o[g] = x;
}
printf("%d",g);
for(i = g ; i>= ; i--)
printf(" %d",o[i]);
puts("");
}
double dist(int u,int v)
{
double s = sqrt((x[u]-x[v])*(x[u]-x[v])+(y[u]-y[v])*(y[u]-y[v]));
return s;
}
int main()
{
int i,j,u,v;
cin>>v1>>v2;
cin>>n;
for(i = ; i <= n ;i++)
{
scanf("%lf%lf",&x[i],&y[i]);
}
for(i = ;i <= n+ ; i++)
for(j = ; j <= n+ ; j++)
w[i][j] = INF;
while(scanf("%d%d",&u,&v)!=EOF)
{
if(!u&&!v)
break;
w[u][v] = dist(u,v)/v2;
w[v][u] = w[u][v];
ed[u].push_back(v);
ed[v].push_back(u);
}
for(i = ; i <= n ; i++)
for(j = i+ ;j <= n ;j++)
{
if(w[i][j]==INF)
{
w[i][j] = dist(i,j)/v1;
w[j][i] = w[i][j]/v1;
ed[i].push_back(j);
ed[j].push_back(i);
}
}
scanf("%lf%lf%lf%lf",&x[],&y[],&x[n+],&y[n+]);
for(i = ; i <= n+ ;i++)
{
w[][i] = dist(i,)/v1;
w[i][] = w[][i];
ed[].push_back(i);
ed[i].push_back();
w[n+][i] = dist(i,n+)/v1;
w[i][n+] = w[n+][i];
ed[i].push_back(n+);
ed[n+].push_back(i);
}
n++;
for(i = ; i <= n ;i++)
w[i][i] = ;
spfa(,n);
return ;
}
1205. By the Underground or by Foot?(spfa)的更多相关文章
- URAL 1205 By the Underground or by Foot?(SPFA)
By the Underground or by Foot? Time limit: 1.0 secondMemory limit: 64 MB Imagine yourself in a big c ...
- 1210. Kind Spirits(spfa)
1210 简单模版题 敲个spfa还得瞟下模版.. #include <iostream> #include<cstdio> #include<cstring> # ...
- 九度OJ 1205 N阶楼梯上楼问题 (DP)
题目1205:N阶楼梯上楼问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2817 解决:1073 题目描写叙述: N阶楼梯上楼问题:一次能够走两阶或一阶.问有多少种上楼方式. (要 ...
- 1450. Russian Pipelines(spfa)
1450 水题 最长路 #include <iostream> #include<cstdio> #include<cstring> #include<alg ...
- 1934. Black Spot(spfa)
1934 水题 RE了N久 后来发现是无向图 #include <iostream> #include<cstring> #include<algorithm> # ...
- 1930. Ivan's Car(spfa)
1930 简单二维 标记一下是上坡还是下坡 #include <iostream> #include<cstdio> #include<cstring> #incl ...
- SiteMesh入门(1-1)SiteMesh是什么?
1.问题的提出 在开发Web 应用时,Web页面可能由不同的人参与开发,因此开发出来的界面通常千奇百怪.五花八门,风格难以保持一致. 为了统一界面的风格,Struts 框架提供了一个标签库Tiles ...
- RecyclerViewLoadMoreDemo【封装上拉加载功能的RecyclerView,搭配SwipeRefreshLayout实现下拉刷新】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装含有上拉加载功能的RecyclerView,然后搭配SwipeRefreshLayout实现下拉刷新.上拉加载功能. 在项目中将 ...
- [zz]LyX 入门教程
http://blog.sina.com.cn/s/blog_630e5dec0100w3jl.html The LyX Tutorial by the LyX Team 1 目录 Chapter 1 ...
随机推荐
- C++中的虚函数(类的向上转换,和向下转换)
1.C++中的封装时为了代码的模块化,继承是为了代码的重用,而多态则是为了接口的重用. 2.C++中的多态是用虚函数来实现的. 3.子类对象向父类指针的转换(向上转换)是安全的,隐式的,而父类对象向子 ...
- swift 类 与 结构体
这两天突然有人问我 swift里面 类和 结构体 有什么区别? 说实在的本人目前不太看好swift,相信很多人也是,oc 都 很成熟了. 本人目前不打算深入了解swift的原因swift 语言 ...
- Eclipse 项目管理控制软件svn
^_^太开心了,之前以为eclipse只有tortoiseSVN而没有类似Visual Studio 2010里面的cvs的版本控制软件,不是我讨厌tortoiseSVN,而是我实在不习惯使用这个软件 ...
- C#WinForm中在dataGridView中添加中文表头
第一步: 注意事项:(1)如果使用数据库,那么第三步的名称可以是任意的,但是不能和数据库中的列名一样,否则会报错: (2)第四步的页眉文本就是你想用的中文列名,自己定: (3)第六步尤其重要,不 ...
- 【环境】Linux下连接无线网常用命令
启用/重启/关闭 网络服务 /etc/init.d/networking start /etc/init.d/networking restart /etc/init.d/networking sto ...
- SQLServer 语句-创建索引【转】
语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100GO /*实例*/USE 库名GOIF EXISTS (SELECT * ...
- Window7中Eclipse运行MapReduce程序报错的问题
按照文档:http://www.micmiu.com/bigdata/hadoop/hadoop2x-eclipse-mapreduce-demo/安装配置好Eclipse后,运行WordCount程 ...
- DIV+CSS高手必知的15个CSS常识
1.不要使用过小的图片做背景平铺.这就是为何很多人都不用 1px 的原因,这才知晓.宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源. 2.无 ...
- Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi
Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi This spring, Kaggle hosted two competitions w ...
- web系统之session劫持解决
session劫持是一种比较复杂的攻击方法.大部分互联网上的电脑多存在被攻击的危险.这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持 可能. 两台主机要想进行TCP通信,必须经过一个三 ...