find the safest road

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 9368    Accepted Submission(s): 3308

Problem Description
XX星球有非常多城市,每一个城市之间有一条或多条飞行通道,可是并非全部的路都是非常安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包含0,1)。一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,如今8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。

可是8600 的数学不好,想请你帮忙 ^_^

 
Input
输入包含多个測试实例,每一个实例包含:

第一行:n。n表示城市的个数n<=1000;

接着是一个n*n的矩阵表示两个城市之间的安全系数,(0能够理解为那两个城市之间没有直接的通道)

接着是Q个8600要旅游的路线,每行有两个数字。表示8600所在的城市和要去的城市
 
Output
假设86无法达到他的目的地。输出"What a pity!",

其它的输出这两个城市之间的最安全道路的安全系数,保留三位小数。
 
Sample Input
3
1 0.5 0.5
0.5 1 0.4
0.5 0.4 1
3
1 2
2 3
1 3
 
Sample Output
0.500
0.400
0.500
 
Author
ailyanlu
 
同一道题写两遍。每次都有新感觉:
附ac代码:
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
#define N 0x3f3f3f
using namespace std;
struct node
{
int u,v;
double w,next;
}t[1001000];
int vis[10100],head[1001000],m,n;
double dis[10010];
void spfa(int v,int y)
{
int i,j,k;
memset(vis,0,sizeof(vis));
memset(dis,0,sizeof(dis));
queue<int>q;
vis[v]=1;
dis[v]=1;
q.push(v);
while(!q.empty())
{
k=q.front();
vis[k]=0;
q.pop();
for(i=head[k];i!=-1;i=t[i].next)
{
int w=t[i].v;
if(dis[w]<dis[k]*t[i].w)
{
dis[w]=dis[k]*t[i].w;
if(!vis[w])
{
vis[w]=1;
q.push(w);
}
}
}
}
if(dis[y]!=0)
printf("%.3lf\n",dis[y]);
else
printf("What a pity!\n");
}
int main()
{
int i,j,k,p;
double l;
while(scanf("%d",&p)!=EOF)//输入一不小心就超时了,一定要按要求的格式输入
{
memset(head,-1,sizeof(head));
int flag=0;
for(i=1;i<=p;i++)
for(j=1;j<=p;j++)
{
scanf("%lf",&l);
t[flag].u=i;
t[flag].v=j;
t[flag].w=l;
t[flag].next=head[i];
head[i]=flag++;
}
int num,x,y;
scanf("%d",&num);
for(i=0;i<num;i++)
{
scanf("%d%d",&x,&y);
spfa(x,y);
}
}
return 0;
}

杭电1596find the safest road(spfa)的更多相关文章

  1. HDU——1596find the safest road(邻接矩阵+优先队列SPFA)

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  2. 一个人的旅行 HDU杭电2066【dijkstra算法 || SPFA】

    pid=2066">http://acm.hdu.edu.cn/showproblem.php? pid=2066 Problem Description 尽管草儿是个路痴(就是在杭电 ...

  3. HDU 1596 find the safest road(SPFA)

    Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...

  4. Choose the best route HDU杭电2680【dijkstra算法 || SPFA】

    http://acm.hdu.edu.cn/showproblem.php?pid=2680 Problem Description One day , Kiki wants to visit one ...

  5. 畅通project续HDU杭电1874【dijkstra算法 || SPFA】

    http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了非常多年的畅通project计划后.最终修建了非常多 ...

  6. 杭电 1596 find the safest road (最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=1596 这道题目与杭电2544最短路的思想是一样的.仅仅只是是把+改成了*,输入输出有些不一样而已. find t ...

  7. 杭电 1595 find the safest road

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  8. 杭电1596 find the safest road

    find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  9. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

随机推荐

  1. 九度oj 题目1100:最短路径

    题目描述: N个城市,标号从0到N-1,M条道路,第K条道路(K从0开始)的长度为2^K,求编号为0的城市到其他城市的最短距离 输入: 第一行两个正整数N(2<=N<=100)M(M< ...

  2. 树形DP专题

    DP是我的弱项, 此专题意在总结树形DP的解题思路. 最小代价遍历一棵树 给定一棵带边权的树 $T=(V,E)$ , 遍历它 (树的每个节点都访问至少一次) 所需的最小代价. 这里的代价由具体问题所定 ...

  3. BZOJ 4824 [Cqoi2017]老C的键盘 ——树形DP

    每一个限制条件相当于一条有向边, 忽略边的方向,就成了一道裸的树形DP题 同BZOJ3167 唯一的区别就是这个$O(n^3)$能过 #include <map> #include < ...

  4. [luoguP2053] [SCOI2007]修车(最小费用最大流)

    传送门 网络流的建图真的好难! 将一个点拆分成多个点的思想还需要加强. 题解 代码和题解中的图略不一样. #include <queue> #include <cstdio> ...

  5. XPosed框架_简单的应用

    0. Xposed框架简介 关于Xposed框架相信大家应该不陌生了,他是Android中Hook技术的一个著名的框架,而Xposed框架是免费的而且还是开源的,本文主要介绍如何通过这个框架来进行系统 ...

  6. ngrinder的安装

    1.官网下载war包(ngrinder-controller),可以使用tomcat启动或者直接nohup java -XX:Permsize=200m -jar ngrinder-3.4.1.war ...

  7. 转载自CSDN,结论:windows下按ENTER键应该是\r\n ascii码为 13 10

    记得在Windows下学X86汇编语言时,用0DH(\r)和0AH(\n)来输出回车(跳到下一行的开始处).问题来了,在Windows下是 先回车再换行呢还是先换行再回车呢?在Unix系统下换行只有\ ...

  8. PhpStorm8 注册码

    User Name : EMBRACE License Key :   ===== LICENSE BEGIN =====43136-1204201000002UsvSON704l"dILe ...

  9. golang文件下载断点续传(下载客户端)

    客户端: //const ( // UA = "Golang Downloader from Kejibo.com" //) func DownloadController(ctx ...

  10. Leetcode 数组问题2:买卖股票的最佳时机 II

    问题描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易( ...