打题不细心
最后喜爆零


jzoj 6101 Path

https://jzoj.net/senior/#main/show/6101
期望dp。
相当于每天m种情况,每次选择期望更小的方法(不走还是走)
于是: f [ i ] = 1 m ∑ j = 1 n m i n ( f [ i ] , f [ j ] ) + 1 f[i]=\frac{1}{m}\sum_{j=1}^nmin(f[i],f[j])+1 f[i]=m1​∑j=1n​min(f[i],f[j])+1
设 s u m sum sum表示在这次转移取min时共选了多少次 f [ j ] f[j] f[j]
对dp式子化简
m f [ i ] = ∑ f [ j ] &lt; f [ i ] f [ j ] + ( m − s u m ) f [ i ] + m mf[i]=\sum_{f[j]&lt;f[i]}f[j]+(m-sum)f[i]+m mf[i]=∑f[j]<f[i]​f[j]+(m−sum)f[i]+m

f [ i ] = ∑ f [ j ] + m s u m f[i]=\frac{\sum f[j]+m}{sum} f[i]=sum∑f[j]+m​
那么现在考虑一个 k 如果要加入 i
显然 ∑ f [ j ] + m s u m &gt; ∑ f [ j ] + m + f [ k ] s u m + 1 \frac{\sum f[j]+m}{sum}&gt;\frac{\sum f[j]+m+f[k]}{sum+1} sum∑f[j]+m​>sum+1∑f[j]+m+f[k]​

化简 ∑ f [ j ] + m s u m &gt; f [ k ] \frac{\sum f[j]+m}{sum}&gt;f[k] sum∑f[j]+m​>f[k]

看成是松弛操作。跑dijstra就好

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
const int MAXN=1e5+5;int n,m,sum[MAXN];
int head[MAXN],next[MAXN*2],to[MAXN*2],cnt;
double f[MAXN];
struct node{int x,sum;double val;node(){x=sum=val=0;}node(int x,int sum,double val):x(x),sum(sum),val(val){}friend bool operator < (node a,node b){return a.val*b.sum>b.val*a.sum;}
};
priority_queue<node>q;
bool isv[MAXN];void add(int u,int v){next[++cnt]=head[u],to[cnt]=v,head[u]=cnt;next[++cnt]=head[v],to[cnt]=u,head[v]=cnt;
}double dijstra(){sum[n]=1,q.push(node(n,1,0));while(!q.empty()){int x=q.top().x;q.pop();if(isv[x]) continue;isv[x]=1;double now=(f[x]+m)/sum[x];if(x==1) return now;if(x==n) now=0;for(int i=head[x];i;i=next[i]){int y=to[i];if(!sum[y]||f[y]+m>sum[y]*now){f[y]+=now,sum[y]++;if(!isv[y]) q.push(node(y,sum[y],f[y]+m));}}}
}
int main(){freopen("path.in","r",stdin);freopen("path.out","w",stdout);cin>>n>>m;for(int i=1,u,v;i<=m;i++) scanf("%d%d",&u,&v),add(u,v);printf("%.10lf",dijstra());return 0;
}

修仙录4.2 最终章相关推荐

  1. 掌上修仙服务器维护,掌上修仙攻略大全

    掌上修仙攻略大全 2019/8/3 10:45:50作者:网络来源:佚名 移动端 掌上修仙安卓版 v1.512 大小:43.44MB语言:简体中文 类型:角色扮演等级: 掌上修仙手游是一款修仙题材的高 ...

  2. c语言修仙角色,C语言修仙手游-C语言修仙手游安卓版V7.4.0预约_第一手游网

    <C语言修仙>是一款非常受玩家欢迎的仙侠冒险角色扮演手游,精致唯美的游戏画面风格,栩栩如生的人物形象,炫酷华丽的技能特效释放,上古的神兽坐骑,最完美的情缘系统,还有完善的社交系统,自由的进 ...

  3. 绝了!“修仙模式”学编程是什么体验?

    这两天突然有一本书火了,为什么能火? 看看第一章第一节: 不就一修仙小说么,开头也一般般,除了主角名字跟张小凡差个姓之外,也没啥特别啊! 慢着!再仔细看看!什么鬼,JavaScript甲等资质? 原来 ...

  4. keras 修仙笔记一

    对于牛逼的程序员,人家都喜欢叫他大神:因为大神很牛逼,人家需要一个小时完成的技术问题,他就20分钟就搞定.Keras框架是一个高度集成的框架,学好它,就犹如掌握一个法宝,可以呼风唤雨.所以学keras ...

  5. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  6. 漫谈架构师之路的修仙之法

    从小有一个武侠梦,长大从事了IT,空闲时间看了很多修仙小说.就萌生了一个想法:把IT之路和修仙之路联系到一起. 于是参照<凡人修仙传>的各个修仙阶段,对比IT之路进行了对照,才有了这篇文章 ...

  7. c语言修仙东君嗯哼,C语言修仙

    熟悉的香气在房间中弥漫开来, 林浔出门吃饭之前打开了窗户企图让香水尽快扩散走. 然而, 晚上再次回到房间的时候, 若有若无的香气再次出现在了他身边. 林浔没有办法,只能破罐子破摔, 关上了窗户,开始和 ...

  8. 程序员修仙之路--高性能排序多个文件

    点击上方蓝色字体,关注我们 菜菜呀,昨天晚上班级空间崩溃了 程序员主力 Y总 what? 菜菜 我看服务器上写了很多个日志文件,我看着太费劲了,能不能按照日期排序整合成一个文件呀? 程序员主力 Y总 ...

  9. 程序员修仙之路--把用户访问记录优化到极致

    点击上方蓝色字体,关注我们 菜菜呀,前几天做的用户空间,用户反映有时候比较慢呀 CEO,CTO,CFO于一身的CXO 是吗? 菜菜 我把你拉进用户反馈群,你解决一下呀 CEO,CTO,CFO于一身的C ...

最新文章

  1. java.lang.Thread使用及总结
  2. [转]PCB 设计中敷铜的注意事项
  3. 做python项目需要知道什么_一文带你了解python是什么?能做什么?为什么要学?(文末附学习资源)...
  4. ADO.NET 数据连接查询
  5. Codeforces Round #381 (Div. 1) A. Alyona and mex 构造
  6. 李宏毅机器学习(七)GPT的野望
  7. 大学生眼中的对方,哈哈
  8. docker的安装与加速器的配置
  9. Activiti5.22:删除工作流引擎自动创建的外键约束
  10. 大规模均衡分割与层次聚类
  11. (一)数据挖掘概念与技术——韩家炜
  12. X509Certificate证书如何获取16位长度serial number?
  13. B2B、B2C、C2C、O2O分别是什么意思?
  14. Linux 安装 rar 解压
  15. 普通人的爱国在日常生活中如何提现
  16. android中使用饼形图
  17. 2021年初oracle最新版本是多少_Oracle升级该怎么选版本
  18. Teamcity打包发布的springboot 项目 ,访问swagger 报Whitelabel Error Page。
  19. SpringCloud(14) Sentinel 1.8.4 规则持久化到Nacos
  20. 计算机系统的备份与还原实验报告,数据备份与数据恢复实验报告

热门文章

  1. 开源3D打印软件ReplicatorG的源代码的获取与配置
  2. laravel启动过程简单解析
  3. CC00034.kafka——|Hadoopkafka.V19|——|kafka.v19|消费者位移管理.v02|
  4. 实践--简版知乎日报
  5. 第7课:郭盛华课程_VB编程之如何使用For循环语句
  6. ajax导致jQuery动态改变CSS等属性延迟的解决方法
  7. DJ1-1 计算机网络和 Internet
  8. matlab sub2ind与ind2sub
  9. python图形化显示股票数据
  10. android plurals用法(单复数),真牛