题目

对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的

课程。

在可以选择的课程中,有 2n 节课程安排在 n 个时间段上。 在第 i ( 1 ≤ i ≤ n )个 时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在教室 ci 上课,而另一节课程在教室 di 进行。

在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的 n 节安排好的课程。如果学生想更换第i节课程的教室,则需要提出申请。若申请通过,学生就可以在第 i 个时间段去教室 di 上课,否则仍然在教室 ci 上课。由于更换教室的需求太多,申请不一定能获得通过。 通过计算,牛牛发现申请更 换第 i 节课程的教室时,申请被通过的概率是一个己知的实数 ki ,并且对于不同课程 的申请,被通过的概率是互相独立的。

学校规定,所有的申请只能在学期开始前一次性提交,并且每个人只能选择至多m节课程进行申请。 这意味着牛牛必须一次性决定是否申请更换每节课的教室,而不能根据某些课程的申请结果来决定其他课程是否申请;牛牛可以申请自己最希望更换教室的 m 门课程,也可以不用完这 m 个申请的机会,甚至可以一门课程都不申请。 因为不同的课程可能会被安排在不同的教室进行,所以牛牛需要利用课间时间从 一间教室赶到另一间教室。 牛牛所在的大学有 v 个教室,有 e 条道路。 每条道路连接两间教室,并且是可 以双向通行的。

由于道路的长度和拥堵程度不同,通过不同的道路耗费的体力可能会有所不同。 当第 i ( 1 ≤ i ≤ n − 1 )节课结束后,牛牛就会从这节课的教室出发,选择一条耗费体力最少的路径前往下一节课的教室。现在牛牛想知道,申请哪几门课程可以使他因在教室间移动耗费的体力值的总和的期望值最小,请你帮他求出这个最小值。

现在牛牛想知道,申请哪几门课程可以使他因在教室间移动耗费的体力值的总和的期望值最小,请你帮他求出这个最小值。

分析

这道题其实只要熟悉期望的求法,而且脑子没有炸掉都可以想出来(反正我脑子是炸掉了)

首先用floyd将教室两两间到达的距离求出来。

求期望,搞个dp,

设\(f_{i,j,0|1}\)表示做到第i节课,用了j次申请,这节课有没有申请(k=0表示没有,反之),的最小期望值。

转移很容易,就是有点麻烦甚至恶心:

f[i][j][0]=min(f[i][j][0],f[i-1][j][0]+dis[a[i-1][0]][a[i][0]]);
if(j>=1)
{
f[i][j][0]=min(f[i][j][0],
(f[i-1][j][1]+dis[a[i-1][1]][a[i][0]])*s[i-1]+
(f[i-1][j][1]+dis[a[i-1][0]][a[i][0]])*(1-s[i-1]));
f[i][j][1]=min(f[i][j][1],
(f[i-1][j-1][0]+dis[a[i-1][0]][a[i][1]])*s[i]+
(f[i-1][j-1][0]+dis[a[i-1][0]][a[i][0]])*(1-s[i]));
if(j>=2)
{
f[i][j][1]=min(f[i][j][1],
(f[i-1][j-1][1]+dis[a[i-1][1]][a[i][1]])*s[i]*s[i-1]+
(f[i-1][j-1][1]+dis[a[i-1][1]][a[i][0]])*(1-s[i])*s[i-1]+
(f[i-1][j-1][1]+dis[a[i-1][0]][a[i][1]])*s[i]*(1-s[i-1])+
(f[i-1][j-1][1]+dis[a[i-1][0]][a[i][0]])*(1-s[i])*(1-s[i-1]));
}
}

【NOIP2016提高组day1】†换教室的更多相关文章

  1. 【NOIP2016提高组】换教室

    https://www.luogu.org/problem/show?pid=1850 题面很长,实质很水的一道期望DP题.题面自带劝退效果. 首先用Floyd算出任意两点的最短路径.然后设f(i,j ...

  2. Noip2016 提高组 Day1

    T1 玩具迷题 直通 思路: 1.首先根据数据范围来看,储存小人的姓名开一个二维char数组即可(不会开爆) 2.然后看他给出的样例以及条件什么的,能够确定出 ①朝内向右,朝外向左均为+ ②朝内向左, ...

  3. 【NOIP16提高组】换教室

    [题目链接] 点击打开链接 [算法] 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教 ...

  4. 【题解】NOIP2016提高组 复赛

    [题解]NOIP2016提高组 复赛 传送门: 玩具谜题 \(\text{[P1563]}\) 天天爱跑步 \(\text{[P1600]}\) 换教室 \(\text{[P1850]}\) 组合数问 ...

  5. 【题解】NOIP2016 提高组 简要题解

    [题解]NOIP2016 提高组 简要题解 玩具迷题(送分) 用异或实现 //@winlere #include<iostream> #include<cstdio> #inc ...

  6. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合

  7. GZOJ 1361. 国王游戏【NOIP2012提高组DAY1】

    国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] ...

  8. luogu1003铺地毯[noip2011 提高组 Day1 T1]

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  9. 18/9/9牛客网提高组Day1

    牛客网提高组Day1 T1 中位数 这好像是主席树??听说过,不会啊... 最后只打了个暴力,可能是n2logn? 只过了前30%  qwq #include<algorithm> #in ...

随机推荐

  1. LeetCode.977-排序数组的平方(Squares of a Sorted Array)

    这是悦乐书的第369次更新,第397篇原创 01看题和准备 今天介绍的是LeetCode算法题中Easy级别的第231题(顺位题号是977).给定一个整数数组A按有序递增顺序排序,返回每个数字的平方, ...

  2. mysql——单表查询——分组查询——示例

    一.基本查询语句 select的基本语法格式如下: select 属性列表 from 表名和视图列表 [ where 条件表达式1 ] [ group by 属性名1 [ having 条件表达式2 ...

  3. 第十周java总结

    Java IO 1.file类 file类的构造方法: public Flie(String pathname) -->实例化Flie类的时候,必须设置好路径. 如:Flie f = new F ...

  4. 联盟周赛2019810 csgo (动态规划、不下降子序列)

    今天起晚了...就做了俩题 难受的一批... 题目描述 著名第一人称射击游戏 csgo 因其优秀的平衡性,爽快的射击感和科学的战术配比赢得了世界广大玩家的好评. 在一局游戏中,分为两个阵营,他们的目标 ...

  5. Java中的模板设计模式,太实用了!

    顾名思义,模板设计模式就是将许多公用的常用的代码封装成一个模板,我们只需要实现不同的业务需求的代码,然后和模板组合在一起,那么就得到完整的逻辑. 在我们的日常开发中,常用的模板模式有两种实现方式:继承 ...

  6. Vue.js官方文档学习笔记(二)组件化应用的构建

    组件化应用的构建 组件化应用允许我们使用小型.独立和通常可复用的组件构建大型应用. Vue注册组件 Vue.component('todo-item',{template:'<li>这是个 ...

  7. POJ 2995 Brackets 区间DP

    POJ 2995 Brackets 区间DP 题意 大意:给你一个字符串,询问这个字符串满足要求的有多少,()和[]都是一个匹配.需要注意的是这里的匹配规则. 解题思路 区间DP,开始自己没想到是区间 ...

  8. Codeforces 1220C. Substring Game in the Lesson

    传送门 首先显然的,如果 $l$ 能移动,那么 $r$ 一定可以随便移动,如果 $l$ 不动,那么 $r$ 一定不能动 那么我们现在只要考虑 $l$ 的移动即可 考虑找到位置 $k$ 之前的最左边的最 ...

  9. vue render 渲染函数

    vue render 渲染函数 经常看到使用render渲染函数的示例,而且在一些特殊情况下,确实更好使用,可以更加有效地细分组件,因而借助vue-element-admin来学习一波 render函 ...

  10. ElasticSearch实战系列四: ElasticSearch理论知识介绍

    前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...