题目大意

解题思路

先跑一次Floyd求出两点之间的距离,f[i][0,1]为第i个点申不申请到终点的期望,由于期望的线性性,和的期望等于期望和,所以可以很容易求出相邻两个点申不申请的期望,直接dp即可,具体可以看一下代码。

code

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LD double
#define LL long long
#define max(x,y) ((x>y)?x:y)
#define min(x,y) ((x<y)?x:y)
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
using namespace std;
int const maxn=2000,maxe=90000,maxv=300,inf=1e9;
int n,m,v,e,c[maxn+10],d[maxn+10],dis[maxv+10][maxv+10];
LD K[maxn+10],f[10][maxn+10][maxn+10],co[10][10],ans;
int main(){
    freopen("classroom.in","r",stdin);
    freopen("classroom.out","w",stdout);
    scanf("%d%d%d%d",&n,&m,&v,&e);
    fo(i,1,n)scanf("%d",&c[i]);
    fo(i,1,n)scanf("%d",&d[i]);
    fo(i,1,n)scanf("%lf",&K[i]);
    int a,b,w;
    fo(i,1,maxv)fo(j,1,maxv)dis[i][j]=inf;
    fo(i,1,maxv)dis[i][i]=0;
    fo(i,1,e){        scanf("%d%d%d",&a,&b,&w);
        dis[a][b]=dis[b][a]=min(dis[a][b],w);
    }
    fo(k,1,maxv)
        fo(i,1,maxv)
            fo(j,1,maxv)
                dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    fo(i,1,n)fo(j,0,m)fo(k,0,1)f[k][i][j]=inf;
    f[0][n][0]=f[1][n][1]=0;
    fd(i,n-1,1){        co[0][0]=dis[c[i]][c[i+1]];
        co[1][0]=K[i]*dis[d[i]][c[i+1]]+(1-K[i])*dis[c[i]][c[i+1]];
        co[0][1]=K[i+1]*dis[c[i]][d[i+1]]+(1-K[i+1])*dis[c[i]][c[i+1]];
        co[1][1]=K[i]*K[i+1]*dis[d[i]][d[i+1]]+(1-K[i])*K[i+1]*dis[c[i]][d[i+1]]+
        K[i]*(1-K[i+1])*dis[d[i]][c[i+1]]+(1-K[i])*(1-K[i+1])*dis[c[i]][c[i+1]];
        fo(k,0,1)
            fo(j,k,m)
                fo(kk,0,1)
                    f[k][i][j]=min(f[k][i][j],co[k][kk]+f[kk][i+1][j-k]);
    }
    ans=inf;
    fo(k,0,1)
        fo(j,k,m)
            ans=min(ans,f[k][1][j]);
    printf("%.2lf",ans);
    return 0;
}

【jzoj4905】【NOIP2016提高组】【†换教室】【动态规划】【期望】相关推荐

  1. P1850 [NOIP2016 提高组] 换教室

    P1850 [NOIP2016 提高组] 换教室 题意: 有2n个课安排在n个时间段上,每个时间段上都有两个一样的课同时在不同地方上,起初牛牛被所有课都被安排在Ci上课,另一节课在Di上课.牛牛现在想 ...

  2. [NOIP2016 提高组] 愤怒的小鸟

    [NOIP2016 提高组] 愤怒的小鸟 题意: 有n只猪,给出猪的坐标(xi,yi),问最少用几个形如 y=ax^2+bx 的曲线可以保证所有猪在曲线上,满足a<0,a,b为实数 n<= ...

  3. 【NOIP2016提高组】天天爱跑步

    题目背景 NOIP2016 提高组 Day1 T2 题目描述 小 C 同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每 ...

  4. #185. [NOIP2016 提高组] 蚯蚓题解

    #185. [NOIP2016 提高组] 蚯蚓题解 题目描述 本题中,我们将用符号 ⌊c⌋\lfloor c \rfloor⌊c⌋ 表示对 ccc 向下取整,例如:⌊3.0⌋=⌊3.1⌋=⌊3.9⌋= ...

  5. NOIP2016 提高组 解题报告

    说明:由于我能力的限制,文章中的做法不一定是最优秀的算法,但官方数据全部测试通过,使用的全部知识全部是NOIP提高组的知识,请组织放心查看. 感谢 GoodQt 的指导与帮助 DAY1 T1 玩具谜题 ...

  6. P2196 [NOIP1996 提高组] 挖地雷 线性动态规划DP 题解

    原题链接:[P2196 NOIP1996 提高组] 挖地雷 - 洛谷) 题目分析 看到这道题,首先感觉是个搜索,如果数据范围不大应该没问题.但是,,,我没找到数据范围啊喂~ 那就动态规划一下,先用二维 ...

  7. 【NOIp2016 day1t3】换教室

    NOIP第一次考期望,着实吓一跳... 读入之后, 由于 n<=200 n <= 200 n,给我们建立了天然的 floyd f l o y d floyd的机会, 建完图之后,能够顺利的 ...

  8. 换教室(NOIP2016提高组Day1T3)

    [题目描述] 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 i ( 1≤ i≤n)个时同段上, 两节内容相同 ...

  9. NOIP2016提高组Day1T3 换教室

    分析 这是一道期望题, 设fi,j,0/1f_{i,j,0/1} 表示第i间教室,第j次申请,0是前一次没有提交申请,1是前一次提交了申请的最小期望. 转移比较简单,但是有一定麻烦. 因为v很小, 所 ...

最新文章

  1. 合理估算线程池线程数量
  2. Linux命令初识一
  3. Linux I2C子系统分析-I2C总线驱动
  4. UA STAT675 统计计算I 随机数生成7 Envelope Accept-Reject Algorithm
  5. BASIC-1_蓝桥杯_闰年判断
  6. 【Python基础】分享5 款超牛逼的 Jupyter Notebook 插件!
  7. linux 下 grep -c sh* /etc/passwd,Linux文本处理三剑客--grep
  8. bashrc文件实例
  9. 下载android版趣步最新版,趣步下载2021安卓最新版_手机app官方版免费安装下载_豌豆荚...
  10. php sql查询占位符,使用命名占位符时PHP / SQL插入错误
  11. 小米wifi每天晚上准时断网_小米 11再次确定,将于28日准时发布,售价更感人
  12. java class类_关于创建java中的class类的对象的方法
  13. Python基础_文件操作
  14. CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
  15. 关于goole IO大会发布的android M和android studio1.3的更新
  16. laravel 自定义分页样式
  17. 【论文阅读】【三维目标检测】Pseudo-LiDAR from Visual Depth Estimation
  18. web常用模块测试用例
  19. 51单片机 蜂鸣器播放提示音
  20. 100道积分公式证明(71-100)

热门文章

  1. 51nod1536不一样的猜数游戏
  2. 华为杯数学建模思路整理
  3. 华为云计算之远程复制
  4. 华为HR向你展现一个真实的华为(HR蒋雯)
  5. Linux 入门基础——常用命令(一)
  6. 【交互设计】新游戏如何推广才能赚到钱
  7. Effective C++ --条款1
  8. ffmpeg 多个MP3合成一个,并且加入不同的段落停顿
  9. RFP是什么?为什么要考RFP证书?
  10. html语言密码框,HTML表单密码框INPUT标签