1205

简单题 有一些小细节 两个站可能不相连 但是可以走过去

 #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)的更多相关文章

  1. 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 ...

  2. 1210. Kind Spirits(spfa)

    1210 简单模版题 敲个spfa还得瞟下模版.. #include <iostream> #include<cstdio> #include<cstring> # ...

  3. 九度OJ 1205 N阶楼梯上楼问题 (DP)

    题目1205:N阶楼梯上楼问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2817 解决:1073 题目描写叙述: N阶楼梯上楼问题:一次能够走两阶或一阶.问有多少种上楼方式. (要 ...

  4. 1450. Russian Pipelines(spfa)

    1450 水题 最长路 #include <iostream> #include<cstdio> #include<cstring> #include<alg ...

  5. 1934. Black Spot(spfa)

    1934 水题 RE了N久 后来发现是无向图 #include <iostream> #include<cstring> #include<algorithm> # ...

  6. 1930. Ivan's Car(spfa)

    1930 简单二维 标记一下是上坡还是下坡 #include <iostream> #include<cstdio> #include<cstring> #incl ...

  7. SiteMesh入门(1-1)SiteMesh是什么?

    1.问题的提出 在开发Web 应用时,Web页面可能由不同的人参与开发,因此开发出来的界面通常千奇百怪.五花八门,风格难以保持一致. 为了统一界面的风格,Struts 框架提供了一个标签库Tiles ...

  8. RecyclerViewLoadMoreDemo【封装上拉加载功能的RecyclerView,搭配SwipeRefreshLayout实现下拉刷新】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装含有上拉加载功能的RecyclerView,然后搭配SwipeRefreshLayout实现下拉刷新.上拉加载功能. 在项目中将 ...

  9. [zz]LyX 入门教程

    http://blog.sina.com.cn/s/blog_630e5dec0100w3jl.html The LyX Tutorial by the LyX Team 1 目录 Chapter 1 ...

随机推荐

  1. .net如何调试dll

    引用"谢绝关注的BLOG" http://blog.sina.com.cn/s/blog_50cc0ffd0100cqhp.html 在同一个解决方案中一定要将调用DLL文件的工程 ...

  2. c语言基础:各种数据类型的输出占位符

    c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d ; printf("这个整数是:%d&q ...

  3. emulatorarm.exe已停止工作

    今天使用ADT 打开android模拟器突然发现模拟器报错,[emulatorarm.exe已停止工作],昨天还是好好的,不知道为什么,重建新的模拟器还是这样. 解决办法: 更改ram大小为 512M ...

  4. 一个完整openlayer的例子,包括marker,popup等

    整理转自:http://www.blogjava.net/siriusfx/archive/2007/11/26/163104.html openlayers提供了几十个示例,虽然每个示例都很简单,但 ...

  5. 2007: [Noi2010]海拔 - BZOJ

    Description YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)× ...

  6. c++ memset 函数 及 坑

    #include <string.h> #include <stdio.h> typedef struct ss{ int num; ][]; }tent; tent a; i ...

  7. 常用git 命令

    1.取消跟踪某些文件或文件夹: 删除文件: $git rm --cached FILENAME 删除文件夹: $git rm -r --cached Path 2.忽略某些文件或文件夹 $vi .gi ...

  8. 针对谷歌默认最小字体12px的正确解决方案 (css、html)

    今天晨会,产品要求把以前12px的字体改小一点,我心想这有什么难的,就随口答应了.哪知,改css的时候,谷歌浏览器中font-size小于12px时,字体就不会再缩小了.当时我的第一反应就是会不会是其 ...

  9. 【BZOJ】【1934】【SHOI 2007】Vote 善意的投票

    网络流/最小割 简单题= =直接利用最小割的性质: 割掉这些边后,将所有点分成了两部分(两个连通块),我们可以假定与S相连的是投赞成票,与T相连的是投反对票. 那么如果一个小朋友原本意愿是睡觉,那么连 ...

  10. GridView 服务端控件添加 js

    针对服务端控件的 CommandField “Delete” 添加 js $("#GridView1").find("a").each( function() ...