【NOIP2016提高组day1】换教室
题目
对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的
课程。
在可以选择的课程中,有 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】换教室的更多相关文章
- 【NOIP2016提高组】换教室
https://www.luogu.org/problem/show?pid=1850 题面很长,实质很水的一道期望DP题.题面自带劝退效果. 首先用Floyd算出任意两点的最短路径.然后设f(i,j ...
- Noip2016 提高组 Day1
T1 玩具迷题 直通 思路: 1.首先根据数据范围来看,储存小人的姓名开一个二维char数组即可(不会开爆) 2.然后看他给出的样例以及条件什么的,能够确定出 ①朝内向右,朝外向左均为+ ②朝内向左, ...
- 【NOIP16提高组】换教室
[题目链接] 点击打开链接 [算法] 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教 ...
- 【题解】NOIP2016提高组 复赛
[题解]NOIP2016提高组 复赛 传送门: 玩具谜题 \(\text{[P1563]}\) 天天爱跑步 \(\text{[P1600]}\) 换教室 \(\text{[P1850]}\) 组合数问 ...
- 【题解】NOIP2016 提高组 简要题解
[题解]NOIP2016 提高组 简要题解 玩具迷题(送分) 用异或实现 //@winlere #include<iostream> #include<cstdio> #inc ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
- GZOJ 1361. 国王游戏【NOIP2012提高组DAY1】
国王游戏[NOIP2012提高组DAY1] Time Limit:1000MS Memory Limit:128000K Description 国王游戏(game.cpp/c/pas) [问题描述] ...
- luogu1003铺地毯[noip2011 提高组 Day1 T1]
题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...
- 18/9/9牛客网提高组Day1
牛客网提高组Day1 T1 中位数 这好像是主席树??听说过,不会啊... 最后只打了个暴力,可能是n2logn? 只过了前30% qwq #include<algorithm> #in ...
随机推荐
- Oracle 安装 RAC 11.2.0.4 centos7.4 -udev磁盘绑定/执行root脚本报错
在centos 7.4上安装oracle rac 11.2.0.4 报错及相关解决 $ cat /etc/redhat-release CentOS Linux release 7.4.1708 (C ...
- 【SSM】---增删改查
20:43:06 package com.chinasofti.dao; import java.util.List; import com.chinasofti.entity.User; publi ...
- THUWC2019(?)历险记
Day \(-?\) 搞文化. Day \(-4\) 突然发现自己复活了,然后就来机房了( Day \(-3\) 返 璞 归 真, 开 始 骆 氪 上午考试,被吊打了/kk Day \(-2\) 上午 ...
- 定位网页元素、透明度、z-index、包裹性和破坏性
一.定位 position属性————规定元素的定位类型,即元素脱离文档流的布局,在页面的任意位置显示 也可以参见以前的总结 <—— 戳 static:默认值,没有定位 relative:相对定 ...
- Tutorial : Implementing Django Formsets
A step-by-step tutorial for setting up and testing a standard Django formset. I’ve noticed on #djang ...
- zabbix4安装部署
参考: https://www.cnblogs.com/barneywill/p/10380622.html https://www.cnblogs.com/yinzhengjie/p/1037256 ...
- 洛谷 P1273 有线电视网 题解
题面 按照常见树形背包定义状态:设dp[u][j]表示在以u为根的子树中,选择j个客户所能获得的最大收益. 状态转移:dp[u][j]=max(dp[u][j-k],dp[v][k]-w(u,v)); ...
- MySQL总结(5)
视图 SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.cust_id=orders.cus ...
- python网络爬虫(2)回顾Python编程
文件写入 def storFile(data,fileName,method='a'): with open(fileName,method,newline ='') as f: f.write(da ...
- Gogs官方帮助文档
环境要求 数据库(选择以下一项): MySQL:版本 >= 5.7 PostgreSQL MSSQL TiDB(实验性支持,使用 MySQL 协议连接) 或者 什么都不安装 直接使用 SQLit ...