正题


题目大意

一张图,nnn次,每次在cic_ici​上课,可以申请换课室到did_idi​,成功概率kik_iki​。求最短需要走的路径的期望长度


解题思路

先FlodyFlodyFlody预处理多源最短路,然后考虑dpdpdp

设fi,j,0/1f_{i,j,0/1}fi,j,0/1​表示前iii次,已经申请了jjj次,这次是否申请了,的最短期望长度。

为了方便我们定义lc=ci−1,ld=di−1,nc=ci,nd=dilc=c_{i-1},ld=d_{i-1},nc=c_i,nd=d_ilc=ci−1​,ld=di−1​,nc=ci​,nd=di​

fi,j,0={fi−1,j,0+dislc,ncfi−1,j,1+ki−1∗disld,nc+(1−ki−1)∗dislc,ncf_{i,j,0}=\left\{\begin{matrix} f_{i-1,j,0}+dis_{lc,nc} & \\ f_{i-1,j,1}+k_{i-1}*dis_{ld,nc}+(1-k_{i-1})*dis_{lc,nc} \end{matrix}\right.fi,j,0​={fi−1,j,0​+dislc,nc​fi−1,j,1​+ki−1​∗disld,nc​+(1−ki−1​)∗dislc,nc​​


fi,j,1={fi−1,j−1,0+ki∗dislc,nd+(1−ki)∗dislc,ncfi−1,j−1,1+ki−1∗ki∗disld,nd+(1−ki−1)∗ki∗dislc,nd+ki−1∗(1−ki)∗disldnc+(1−ki−1)∗(1−ki)∗dislc,ncf_{i,j,1}=\left\{\begin{matrix} f_{i-1,j-1,0}+k_i*dis_{lc,nd}+(1-k_i)*dis_{lc,nc} & \\ f_{i-1,j-1,1}+k_{i-1}*k_i*dis_{ld,nd}+(1-k_{i-1})*k_i*dis_{lc,nd}+ k_{i-1}*(1-k_i)*dis{ld}{nc}+(1-k_{i-1})*(1-k_i)*dis_{lc,nc} \end{matrix}\right.fi,j,1​={fi−1,j−1,0​+ki​∗dislc,nd​+(1−ki​)∗dislc,nc​fi−1,j−1,1​+ki−1​∗ki​∗disld,nd​+(1−ki−1​)∗ki​∗dislc,nd​+ki−1​∗(1−ki​)∗disldnc+(1−ki−1​)∗(1−ki​)∗dislc,nc​​


codecodecode

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=2010;
int n,m,v,e,c[N],d[N],dis[N][N];
double k[N],f[N][N][2],mins;
int main()
{freopen("testdata.in","r",stdin);scanf("%d%d%d%d",&n,&m,&v,&e);for(int i=1;i<=n;i++)scanf("%d",&c[i]);for(int i=1;i<=n;i++)scanf("%d",&d[i]);for(int i=1;i<=n;i++)scanf("%lf",&k[i]);for(int i=1;i<=v;i++)for(int j=1;j<=v;j++)dis[i][j]=2147483647/3;for(int i=1;i<=e;i++){int x,y,w;scanf("%d%d%d",&x,&y,&w);dis[x][y]=dis[y][x]=min(dis[x][y],w);}for(int ks=1;ks<=v;ks++){dis[ks][ks]=0;for(int i=1;i<=v;i++)for(int j=1;j<=v;j++)if(dis[i][ks]+dis[ks][j]<dis[i][j])dis[i][j]=dis[i][ks]+dis[ks][j];}for(int i=0;i<=n;i++)for(int j=0;j<=m;j++)f[i][j][0]=f[i][j][1]=2147483647/3;f[1][1][1]=f[1][0][0]=0;for(int i=2;i<=n;i++){for(int j=0;j<=min(i,m);j++){f[i][j][0]=min(f[i-1][j][0]+dis[c[i-1]][c[i]],f[i-1][j][1]+k[i-1]*dis[d[i-1]][c[i]]+(1-k[i-1])*dis[c[i-1]][c[i]]);if(j){f[i][j][1]=min(f[i-1][j-1][0]+k[i]*dis[c[i-1]][d[i]]+(1-k[i])*dis[c[i-1]][c[i]],f[i-1][j-1][1]+k[i-1]*k[i]*dis[d[i-1]][d[i]]+(1-k[i-1])*k[i]*dis[c[i-1]][d[i]]+k[i-1]*(1-k[i])*dis[d[i-1]][c[i]]+(1-k[i-1])*(1-k[i])*dis[c[i-1]][c[i]]);}}}mins=2147483647;if(n==1) mins=0;for(int j=0;j<=m;j++)mins=min(mins,min(f[n][j][0],f[n][j][1]));printf("%0.2lf",mins);
}

P1850-换教室【数学期望,dp,Floyd】相关推荐

  1. Luogu P1850换教室【期望dp】By cellur925

    题目传送门 首先这个题我们一看它就是和概率期望有关,而大多数时候在OI中遇到他们时,都是与dp相关的. \(Vergil\)学长表示,作为\(NOIp2016\)的当事人,他们考前奶联赛一定不会考概率 ...

  2. 【DP】【期望】$P1850$换教室

    [DP][期望]\(P1850\)换教室 链接 题目描述 有 \(2n\) 节课程安排在$ n$ 个时间段上.在第 \(i\)(\(1 \leq i \leq n\))个时间段上,两节内容相同的课程同 ...

  3. CF1267G-Game Relics【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1267G 题目大意 给出nnn个物品,你可以进行如下操作 花费xxx获得随机一个物品. 花费cic_ici​获得 ...

  4. CF1540B-Tree Array【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1540B 题目大意 nnn个点的一棵树,开始随机选择一个点标记,然后每次随机选择一个与被标记点连边的点标记,按照 ...

  5. P3830-[SHOI2012]随机树【数学期望,dp】

    正题 题目大意 开始的时候一个点,然后等概率随机选一个叶子节点展开成两个,求nnn个叶子节点的树的叶子节点平均深度和最大深度期望. 解题思路 平均深度很好求,因为每展开一个,叶子节点总深度就加上个2. ...

  6. CF708E-Student‘s Camp【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有n∗mn*mn∗m的矩形网格,然后每次每行最左边和最右边的格子各有p=cdp=\frac{c ...

  7. 数论小白都能看懂的数学期望讲解

    -1.灌水 这里阅读应该效果更佳 想了解更多关于数论的内容,可戳这里 感谢@command_block 大佬提出宝贵建议 也感谢洛谷及UVA的相关题目 如果有小瑕疵可以在评论区提出 内容可能有点多但很 ...

  8. Noip2016换教室

    传送门! Simple Description: 牛牛有$n$节课要上,每个时段都有$2$个教室在上课(具体来说是第$c[i]$与第$d[i]$个教室),牛牛在其中的一个教室上课,牛牛起初每节课分别被 ...

  9. [NOIP2016]换教室(概率期望$DP$)

    其实吧我老早就把这题切了--因为说实话,这道题确实不难啊--李云龙:比他娘的状压DP简单多了 今天我翻以前在Luogu上写的题解时,突然发现放错代码了,然后被一堆人\(hack\)--蓝瘦啊\(ORZ ...

最新文章

  1. html 高德地图坐标,百度地图,高德地图,HTML5经纬度比较
  2. 脑科学真的可以启发AI吗?
  3. 唠唠SE的集合-04——ArrayList
  4. JavaME:Google静态地图API
  5. Python实战——2048
  6. 消息队列技术终结者(三)—ActiveMQ的特性及优势
  7. android 如何自动连接wifi密码错误,在android中连接到wifi网络,如果密码不正确则返回...
  8. java实现小程序订阅消息推送(附源码)
  9. 灰色模型GM与时间无关
  10. 【论文学习笔记-9】ACFNet:Adaptive Unimodal Cost Volume Filtering for Deep Stereo Matching(2020AAAI)
  11. 计算机快捷键如何移动到桌面,如何设置显示桌面快捷键 设置显示桌面快捷键方法【图文】...
  12. html如何删除目录,无法删除文件夹 目录不是空的
  13. @Validated使用
  14. 考研英语|传统文化英语高频词汇
  15. 诺依曼计算机组成,1.1.2 冯·诺依曼计算机模型
  16. 【CodeForces】CF13C Sequence(配数学证明)
  17. 综合中央计算机系统简称,广州地铁TVM本地数据与SC报表数据不一致故障分析研究...
  18. 【思维导图】考信息系统项目管理师,看这一篇就够了~
  19. 批量修改文件名中的一部分
  20. 导轨式串口服务器将ModbusTCP网口设备连接云端

热门文章

  1. java如何解压rar文件怎么打开,java解压rar文件
  2. yaml for java_细数Java项目中用过的配置文件(YAML篇)
  3. ajax中迭代是什么意思,Ajax 局部刷新迭代器的内容
  4. 顺丰gis产品经理_线上面试季丰图科技—顺丰旗下专注GIS领域
  5. global.php,global.php
  6. spyder pyecharts不显示_我的显示器需要定时校色吗?
  7. mysql数据聚合技术_Mysql 去重 聚合
  8. leetcode209. 长度最小的子数组(滑动窗口)
  9. 7-11 租用游艇问题 (15 分)(思路+详解+一步步分析+网格解决动态规划问题)Come boy!!!!
  10. html刮刮卡开始刮奖页面,html5刮刮卡抽奖 示例源码