最短路径-zoj-2797

zoj-2797-106 miles to Chicago

In the movie "Blues Brothers", the orphanage where Elwood and Jack were raised may be sold to the Board of Education if they do not pay 5000 dollars in taxes at the Cook Country Assessor's Office in Chicago. After playing a gig in the Palace Hotel ballroom to earn these 5000 dollars, they have to find a way to Chicago. However, this is not so easy as it sounds, since they are chased by the Police, a country band and a group of Nazis. Moreover, it is 106 miles to Chicago, it is dark and they are wearing sunglasses.

As they are on a mission from God, you should help them find the safest way to Chicago. In this problem, the safest way is considered to be the route which maximises the probability that they are not caught. 

Input Specification

The input file contains several test cases.

Each test case starts with two integers n and m (2 ≤ n ≤ 100 , 1 ≤ m ≤ n*(n-1)/2). n is the number of intersections, m is the number of streets to be considered.

The next m lines contain the description of the streets. Each street is described by a line containing 3 integers a, b and p (1 ≤ a, b ≤ n , a ≠ b, 1 ≤ p ≤ 100): a and b are the two end points of the street and p is the probability in percent that the Blues Brothers will manage to use this street without being caught. Each street can be used in both directions. You may assume that there is at most one street between two end points. 

The last test case is followed by a zero. 

Output Specification

For each test case, calculate the probability of the safest path from intersection 1 (the Palace Hotel) to intersection n (the Honorable Richard J. Daley Plaza in Chicago). You can assume that there is at least one path between intersection 1 and n.

Print the probability as a percentage with exactly 6 digits after the decimal point. The percentage value is considered correct if it differs by at most 10-6 from the judge output. Adhere to the format shown below and print one line for each test case. 

Sample Input

5 7

5 2 100

3 5 80

2 3 70

2 1 50

3 4 90

4 1 85

3 1 70

0

Sample Output

61.200000 percent

Hint:

The safest path for the sample input is 1 -> 4 -> 3 -> 5 

Source: University of Ulm Local Contest 2005

大意:给一个无重边的无向图,每条边上的权值代表“安全系数”。一个人要从顶点1逃到顶点n,问最大的成功概率是多少。

分析:概率知识之乘法原理,最短路径思想。

ps:此题说是special judge,我没发现有特殊评判的必要啊。

 

时间: 2025-01-21 16:20:01

最短路径-zoj-2797的相关文章

彻底弄懂最短路径问题

        只想说:温故而知新,可以为师矣.我大二的<数据结构>是由申老师讲的,那时候不怎么明白,估计太理论化了(ps:或许是因为我睡觉了):今天把老王的2011年课件又看了一遍,给大二的孩子们又讲了一遍,随手谷歌了N多资料,算是彻底搞懂了最短路径问题.请读者尽情享用--         我坚信:没有不好的学生,只有垃圾的教育.不过没有人理所当然的对你好,所以要学会感恩. 一.问题引入         问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径--

街道最短路径

街区最短路径问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 一个街区有很多住户,街区的街道只能为东西.南北两种方向. 住户只可以沿着街道行走. 各个街道之间的间隔相等. 用(x,y)来表示住户坐在的街区. 例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道. 现在要建一个邮局,使得各个住户到邮局的距离之和最少. 求现在这个邮局应该建在那个地方使得所有住户距离之和最小: 输入 第一行一个整数n<20,表示有n组测试数据,下面是n组数据; 每组第一行

基于pgrouting的任意两点间的最短路径查询函数二

    在前面的博文中写过一篇查询任意两点间最短路径的函数,当时对pgrouting不熟悉,功能很low.现在对该函数进行扩展,支持用户自己输入查询的数据库表,这一点看似简单,其实意义很大,在做室内导航的时候当用户所在的楼层变化的时候最短路径函数查询的数据表名称也会发生变化,不可能一栋大楼里的道路都是一样的吧,另外进行跨楼层的最短路径规划时,需要查询从A到楼梯口的最短路径和楼梯口到B的最短路径,这些都需要进行最短路径规划的时候能够自己选择数据表.     先解释一下最短路径规划的处理步骤,首先要

[算法系列之二十九]Bellman-Ford最短路径算法

单源最短路径 给定一个图,和一个源顶点src,找到从src到其它所有所有顶点的最短路径,图中可能含有负权值的边. Dijksra的算法是一个贪婪算法,时间复杂度是O(VLogV)(使用最小堆).但是迪杰斯特拉算法在有负权值边的图中不适用,Bellman-Ford适合这样的图.在网络路由中,该算法会被用作距离向量路由算法. Bellman-Ford也比迪杰斯特拉算法更简单和同时也适用于分布式系统.但Bellman-Ford的时间复杂度是O(VE),这要比迪杰斯特拉算法慢.(V为顶点的个数,E为边的

单源最短路径算法--Dijkstra算法和Bellman-Ford算法

Dijkstra算法 算法流程: (a) 初始化:用起点v到该顶点w的直接边(弧)初始化最短路径,否则设为∞: (b) 从未求得最短路径的终点中选择路径长度最小的终点u:即求得v到u的最短路径: (c) 修改最短路径:计算u的邻接点的最短路径,若(v,-,u)+(u,w)<(v,-,w),则以(v,-,u,w)代替. (d) 重复(b)-(c),直到求得v到其余所有顶点的最短路径. 特点:总是按照从小到大的顺序求得最短路径. 假设一共有N个节点,出发结点为s,需要一个一维数组prev[N]来记录

九度题目1008:最短路径问题

题目1008:最短路径问题 时间限制:1 秒内存限制:32 兆特殊判题:否提交:5129解决:1634 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花 费,如果最短距离有多条路线,则输出花费最少的. 输入: 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p. 最后一行是两个数 s,t;起点s,终点t.n和m为0时输入结束. (1n=1000, 0m100000,

迷宫路径输出问题-关于迷宫深度最短路径的问题

问题描述 关于迷宫深度最短路径的问题 #include #include #include #include #include #define N 100 using namespace std; struct node { double hgf; int xy; bool operator<(node other)const { return f } }; int map[N][N];//迷宫,1表示可以走,0表示不可以走 int rowcol;//矩阵的行和列 multiset open;/

最短路径规划中创建基于geoserver的wms服务

上篇文章写了求任意两点间最短路径的sql函数,这篇文章讲一下如何把上面介绍的子功能整合到系统中去. 1.geoserver登录 首先单击geoserver安装路径下的start Geoserver 待geoserver启动后,在浏览器中输入,http://localhost:8080/geoserver/web/ 输入用户名密码登录geoserver 2.创建工作区 单击左侧工作区,如下图所示: 会进入新建工作区页面,单击"添加新的工作区",如下图所示 在弹出的工作区设置中输入新工作区

Twitter:互联网的最短路径

TWITTER最近炒得挺火,国外的twitter拿到了可观的风投,国内的仿twitter也拿到了数量不等的天使投资:大度咨询和techweb上周还特意请来CSDN的总经理韩磊先生以及国内几个仿twitter(微博客)的网站创始人,共同讨论了twitter的前景. 不看好twitter的理由 很多人对twitter都不太看好,其中一个理由是中美文化的不同,美国人乐于把自己的私事告诉别人,中国人对此却没有太多的兴趣,美国人开放的性格与中国人还是有一段差距,myspace至今没在国内火起来,也有类似的

迷宫的最短路径算法 代码(C++)

题目: 给定一个大小为N*M的迷宫. 迷宫由通道和墙壁组成, 每一步可以向邻接的上下左右四格的通道移动. 请求出从起点到终点所需的最小步数. 请注意, 本题假定从起点一定可以移动到终点. 使用宽度优先搜索算法(DFS), 依次遍历迷宫的四个方向, 当有可以走且未走过的方向时, 移动并且步数加一. 时间复杂度取决于迷宫的状态数, O(4*M*N)=O(M*N). 代码: /* * main.cpp * * Created on: 2014.7.17 *本栏目更多精彩内容:http://www.bi