题解:

不难发现,对于每一条从$S$到$T$的路径,设其$x、y$的和为$S_x、S_y$,其对答案的贡献是$a\cdot S_x+(1-a)\cdot S_y$,这是一个关于$a$的一次函数。而所有的路径就对应着许多$a\in [0,1]$直线,而不同$a$所对应的最短路长度恰好构成了这些直线的上凸壳,而求最短路的期望就是求上凸壳的积分(与坐标系横轴所夹面积),考虑到$n、m$很小,所以直接用一次函数不断拟合,每次求点值暴力跑一边最短路即可。

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define LL long long
#define M 802
#define N 202
#define INF 1010000000
#define eps (1e-5)
using namespace std;
int read(){int nm=0,fh=1; char cw=getchar();for(;!isdigit(cw);cw=getchar()) if(cw=='-') fh=-fh;for(;isdigit(cw);cw=getchar()) nm=nm*10+(cw-'0');return nm*fh;
}
struct STA{int nd; double dst;STA();STA(int _nd,int _dst){nd=_nd,dst=_dst;}bool operator <(const STA&ot)const{return dst>ot.dst;}
};
priority_queue<STA> Q;
int n,m,X[M],Y[M],fs[N],nt[M],to[M],tmp,S,T;
double dis[N];
bool vis[N];
void link(int x,int y,int t1,int t2){nt[tmp]=fs[x],fs[x]=tmp,to[tmp]=y,X[tmp]=t1,Y[tmp++]=t2;}
double DJ(double V){for(int i=1;i<=n;i++) dis[i]=INF*1.0,vis[i]=false;while(!Q.empty()) Q.pop(); dis[S]=0.0,Q.push(STA(S,0.0));while(!Q.empty()){int x=Q.top().nd; Q.pop();if(vis[x]) continue; vis[x]=true;for(int i=fs[x];i!=-1;i=nt[i]){double dt=dis[x]+(X[i]*V)+(Y[i]*(1.0-V));if(dt>=dis[to[i]]) continue;dis[to[i]]=dt,Q.push(STA(to[i],dt));}}return dis[T];
}
double calc(double L,double R){double mid=(L+R)/2.0,ans,ls,rs;ans=DJ(mid),ls=DJ(L),rs=DJ(R);if(fabs(ans-(ls+rs)/2.0)*(R-L)<eps) return ans*(R-L);return calc(L,mid)+calc(mid,R);
}
int main(){n=read(),m=read(),S=read(),T=read(),memset(fs,-1,sizeof(fs));for(int i=1;i<=m;i++){int u=read(),v=read(),t1=read(),t2=read();link(u,v,t1,t2),link(v,u,t1,t2);}printf("%.10f\n",calc(0.0,1.0)); return 0;
}

转载于:https://www.cnblogs.com/OYJason/p/9651769.html

幻想乡三连C:狂飙突进的幻想乡相关推荐

  1. 狂飙突进的幻想乡 - 最短路 - 辛普森积分

    题目大意:给一张无向图,每条边有个(x,y),每条边的边权是ax+(1−a)yax+(1-a)yax+(1−a)y.若a在[0,1]均匀随机,问期望最短路是多少.n<=200,m<=400 ...

  2. 2016北京集训测试赛(九)Problem C: 狂飙突进的幻想乡

    Solution 我们发现, 对于一条路径来说, 花费总时间为\(ap + q\), 其中\(p\)和\(q\)为定值. 对于每个点, 我们有多条路径可以到达, 因此对于每个区间中的\(a\)我们可以 ...

  3. 幻想乡三连A:五颜六色的幻想乡

    非常直接地构造 由于答案与生成树计数有关,所以一定要使用矩阵树定理,但这样就不能限制每种颜色的便使用的数量 我们构造$N^2$个关于$Ans_{x,y}$的方程,枚举将红色的边拆成$x$条,将蓝色的边 ...

  4. 龙族幻想最新东京机器人位置_龙族幻想:东京·白月境活动介绍

    ​在<龙族幻想>手游中,有的玩家喜欢参加PVE副本,有的玩家则喜欢参与PVP活动,在PVP活动中又分为单人PVP活动以及团队PVP活动.除此之外,还有一个活动也属于PVP,那就是今天要介绍 ...

  5. 龙族幻想最新东京机器人位置_龙族幻想:最强“人形兵器”格斗家降临卡塞尔学院...

    一转眼<龙族幻想>已经上线了许久,虚拟4引擎搭配GPU特效,结合PBR渲染技术无疑让它成为了RPG手游中的优等生,这款3D手游可谓当是今腾讯旗下当之无愧的旗舰RPG手游.相信每一位体验过游 ...

  6. 龙族幻想最新东京机器人位置_龙族幻想藤原智坐标位置一览 藤原智任务攻略...

    龙族幻想v1.3.148安卓版 类型:角色扮演大小:1.39G语言:中文 评分:5.0 标签: 立即下载 龙族幻想藤原智在哪?这是苍穹之下异闻,需要找到npc藤原智,许多玩家都不清楚在什么位置,如何完 ...

  7. 龙族幻想服务器维护中怎么办,龙族幻想社团维护费用不足怎么办_龙族幻想社团维护费用解决攻略_玩游戏网...

    <龙族幻想>异闻攻略大全 在龙族幻想手游中异闻究竟该怎么过呢?在龙族幻想手游中异闻玩法可以说是非常受小伙伴们欢迎的了,那么想了解这些异闻录的小伙伴们下面就来看一下吧!龙族幻想下载地址:点击 ...

  8. 龙族幻想最新东京机器人位置_龙族幻想凌晨四点的东京机器人位置在哪?

    龙族幻想凌晨四点的东京异闻怎么触发?凌晨四点的东京需要找到机器人,集齐是个机器人就能完成任务,这次小编分享的就是凌晨四点的东京异闻的玩法攻略,下面是凌晨四点的东京机器人的坐标位置,大家可以根据攻略前去 ...

  9. 龙族幻想东京机器人一次_龙族幻想凌晨四点的东京机器人坐标-机器人刷新点_6137游戏网...

    龙族幻想凌晨四点的东京机器人在哪,机器人怎么找,机器人刷新点,机器人坐标还不清楚的玩家赶快和小编一起看看吧! 异闻攻略 1.触发地点:校长室左边柱子.注意,触发条件没有限制,全天都可以 2.开箱子获得 ...

最新文章

  1. HH SaaS电商系统的供应商系统设计
  2. cont char *p 和 char* const p 区别及记忆方法
  3. C++ static静态成员变量
  4. vue 项目中使用粘性布局不起作用_做vue项目中遇到的坑总结与学习
  5. autojs命令代码大全_各个主流品牌手机的命令代码大全,安卓工程模式的指令大全!...
  6. 【转】SpringMVC Controller 介绍
  7. plsql 存储过程 批量提交_新一代的键值存储 KVell SOSP 2019
  8. 动态文本_(302期)【动态】|| 立足相同文本,描绘不同风景 ——工作室开展“同课异构”活动...
  9. python获取百度迁徙大数据
  10. Dhtmlx Gantt中lightbox如何自定义name值
  11. typo:in word ‘ ‘ 问题解决方法
  12. 资源依赖项注入失败: org.springframework.beans.factory.BeanCreationException: Error creating bean with name
  13. Gooxi国产化服务器专题介绍之海光服务器
  14. 10分钟白嫖我的常用的在线工具网站清单
  15. 阴阳师自动御魂觉醒超鬼王脚本
  16. 计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法
  17. Microsoft Speech Platform案例
  18. JZOJ5426. 【NOIP2017提高A组集训10.25】摘Galo
  19. 特大整数相加(C实现)
  20. 【Gulimall】Spring Cloud:spring-cloud-gateway、spring-cloud-openfeign,Alibaba的注册+配置中心Nacos

热门文章

  1. 苹果电脑和windows电脑怎么选择?开发应该用什么电脑?视频剪辑用什么电脑?电脑推荐
  2. 9.数据采集与监控知识点
  3. 浅谈Openstack网络原理(openstack无法上网?)
  4. ESP32 的 I2C 原理 应用入门
  5. 操作系统实验——模拟动态分区首次适应分配和回收算法
  6. 学习 Python 可以快速赚钱吗?
  7. 第8个HttpClient 例子.HttpClient+jsoup 获取网站相关信息
  8. docker最全笔记速查,逻辑清晰
  9. 【NOIP2016】bzoj4719 天天爱跑步
  10. JavaScript实现React实现网页转换成图片截屏下载