zoukankan      html  css  js  c++  java
  • codevs4438 YJQ Runs Upstairs

    题目描述 Description

    学校科技楼一共有N层,而神犇YJQ每天都在科技楼N楼的机房写代码。这天,他准备从科技楼1楼爬到N楼。有个M连接不同楼层的楼梯,爬每个楼梯需要一定的体力值。楼梯一定是从低处通往高处的。(但是由于楼房的设计比较奇怪,第i楼并不一定在第i-1楼上面,也就是说给出的边不保证x<y,但保证图为DAG,请自行处理楼层之间的高度关系)。为了省时间,YJQ一定只会上楼梯而不会下楼梯,即楼梯间不会形成环路。而且出于人性化考虑,不管YJQ选择什么路线上楼,他爬的楼梯数量一定小于20。为了使体力消耗尽量平稳,YJQ需要选择一条“每个楼梯消耗体力值的方差最小”的路径上楼。请帮助YJQ计算出这个最小方差。

    输入描述 Input Description

    第一行包含2个整数N,M表示科技楼楼层数和楼梯数; 接下来M行,每行3个数,x,y,z表示存在一条由x层通往平台y层的楼梯,爬这个楼梯需要消耗z的体力值。

    输出描述 Output Description

    一行1个实数,表示最小方差,精确到小数点后4位。

    样例输入 Sample Input

    4 4 1 2 1 2 4 3 1 3 2 3 4 3

    样例输出 Sample Output

    0.2500

    数据范围及提示 Data Size & Hint

    对于30%的数据,N<=10,M<=20; 

    另有20%的数据N<=35,M<=220,Z∈0,1; 

    对于100%的数据2<=N<=50,M<=300,0<=Z<=50保证至少存在一条由1到N的路径。

    s^2=((x1^2+x2^2+……+xn^2)-2*x*(x1+x2+……+xn)+n*x^2) / n

    因为上式分子>=0,只要知道n与tot,x=tot/n。所以按照状态spfa,求出每个状态 f[i=当前点][j=第几步][k=路径长度和tot]=最小平方和

    在i=n时,直接处理更新ans值

  • 相关阅读:
    Java子类与父类的初始化
    悠哈牛奶糖为什么有五种味道单独装的,而不是混合装的
    C++ TinyXml操作(含源码下载)
    动物园海洋馆
    冰上行走
    Tmux : GNU Screen 的替代品
    考虑使用jruby
    关于一些展现的框架
    python抓取google搜索url
    pythonwebkit
  • 原文地址:https://www.cnblogs.com/hyfer/p/5852414.html
Copyright © 2011-2022 走看看