codevs4438 YJQ Runs Upstairs
Posted ACforever
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs4438 YJQ Runs Upstairs相关的知识,希望对你有一定的参考价值。
学校科技楼一共有N层,而神犇YJQ每天都在科技楼N楼的机房写代码。这天,他准备从科技楼1楼爬到N楼。有个M连接不同楼层的楼梯,爬每个楼梯需要一定的体力值。楼梯一定是从低处通往高处的。(但是由于楼房的设计比较奇怪,第i楼并不一定在第i-1楼上面,也就是说给出的边不保证x<y,但保证图为DAG,请自行处理楼层之间的高度关系)。为了省时间,YJQ一定只会上楼梯而不会下楼梯,即楼梯间不会形成环路。而且出于人性化考虑,不管YJQ选择什么路线上楼,他爬的楼梯数量一定小于20。为了使体力消耗尽量平稳,YJQ需要选择一条“每个楼梯消耗体力值的方差最小”的路径上楼。请帮助YJQ计算出这个最小方差。
第一行包含2个整数N,M表示科技楼楼层数和楼梯数; 接下来M行,每行3个数,x,y,z表示存在一条由x层通往平台y层的楼梯,爬这个楼梯需要消耗z的体力值。
一行1个实数,表示最小方差,精确到小数点后4位。
4 4 1 2 1 2 4 3 1 3 2 3 4 3
0.2500
对于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值
以上是关于codevs4438 YJQ Runs Upstairs的主要内容,如果未能解决你的问题,请参考以下文章