LightOJ - 1395
题意
在你的面前有n个门,通过有的门在si的时间后走出迷宫,有的门会在si的时间后返回原地。你可以记住你之前走过的k个门,在下一次选择的时候不选那些走不出去的门。求走出迷宫的期望时间。
思路
概率dp。定义f[i]为已经记住了i个门之后的期望剩余时间。
定义s1表示所有能够走出的门的花费时间的总和,s2表示所有走不出去的门的时间总和,s为走不出去的门的数量。
f[k]=s1n−k+s−ks∗s2+(s−k)∗f[k]n−kf[k]=\frac{s1}{n-k}+\frac{\frac{s-k}{s}*s2+(s-k)*f[k]}{n-k}f[k]=n−ks1+n−kss−k∗s2+(s−k)∗f[k]
当i<k时
f[i]=s1n−i+s−is∗s2+(s−i)∗f[i+1]n−if[i]=\frac{s1}{n-i}+\frac{\frac{s-i}{s}*s2+(s-i)*f[i+1]}{n-i}f[i]=n−is1+n−iss−i∗s2+(s−i)∗f[i+1]
因此,求出f[k]后递推求解,f[0]即为最终答案。
代码:
#include <bits/stdc++.h>using namespace std;#define ll long long
#define ld long double
#define ull unsigned long long
#define __ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)const int maxn = 5e5 + 10;
const int maxm = 5e5 + 10;
const ll mod = 1e9 + 7;
const double eps = 1e-10;ld f[110], w[110];
int n, K, a[110];int main() {__;int _;cin >> _;for (int sce = 1; sce <= _; sce++) {cin >> n >> K;int s1 = 0, s2 = 0, s = 0;for (int i = 1; i <= n; ++i) {cin >> a[i];if (a[i] > 0)s1 += a[i];else {s2 -= a[i];++s;}}cout << "Case " << sce << ": ";if (n == s) {cout << "-1" << endl;continue;}K = min(K, s);memset(w, 0, sizeof w);memset(f, 0, sizeof f);for (int i = 0; i <= K; ++i) {if (s == 0)w[i] = 0;else w[i] = (ld) s2 * (s - i) / (ld) s;}f[K] = (ld) s1 / (ld) (n - s) + (ld) w[K] / (ld) (n - s);for (int i = K - 1; i >= 0; --i) {f[i] = s1 / (ld) (n - i) + (w[i] + (ld) (s - i) * f[i + 1]) / (ld) (n - i);}cout << fixed << setprecision(10) << f[0] << endl;}return 0;
}
LightOJ - 1395相关推荐
- LightOJ 1395 A Dangerous Maze (II) 期望DP
A Dangerous Maze (II) LightOJ - 1395 这个题是 LightOJ 1027 A Dangerous Maze 基础概率DP 的加强版. 有 nnn 个门,其中有些门通 ...
- LightOJ - 1395 A Dangerous Maze (II) —— 期望
题目链接:https://vjudge.net/problem/LightOJ-1395 1395 - A Dangerous Maze (II) PDF (English) Statisti ...
- LightOJ 1395 A Dangerous Maze (II) (概率dp)
题意:给出n扇门,每扇门都给出一个数x,若为正数,则表示在x时间后走出迷宫,若为负数,则表示在x时间后回到起点,你会记得最后k扇你走过的门(不会再走),求最后的期望时间. 题解:概率dp 这题的进阶版 ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
- [kuangbin]各种各样的题单
[kuangbin]各种各样的题单 专题1 简单搜索 POJ 1321 POJ 2251 POJ 3278 POJ 3279 POJ 1426 POJ 3126 POJ 3087 POJ 3414 F ...
- kuangbin带你飞 专题1-23 题单
kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...
- 老鱼的-kuangbin专题题解
kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...
- Pairs Forming LCM LightOJ - 1236
Pairs Forming LCM LightOJ - 1236 题意 问共有多少组数的最大公约数是n 分析 组合数学 ,唯一分解定理 参考代码 int Prime[670000]; const in ...
最新文章
- R语言通过loess去除某个变量对数据的影响
- 设计模式学习---策略模式
- Python 中的*args和**kwargs
- php调用root权限,PHP执行root权限程序
- 第五章 PX4-Pixhawk-GPS解析
- 数据分析常用Python库:数值计算、可视化、机器学习等领域
- Server Core 的部署与管理
- [.net]c#登陆实现验证码-图形编程
- stl之map 排序
- c语言入门教程--1编译器
- TI Cortex-A9 AM437x系列-创龙TL437x-EVM开发板详解
- 【技术贴】ppt2003更换图片|更换带有动作特效的图片|替换ppt图片
- 使用RT-Thread Studio DIY 迷你桌面时钟(一)| 基于STM32芯片创建HelloWorld工程
- Idel插件jrebel安装以及破解教程
- [Trans 系列之一]TransE算法(Translating Embedding)
- 如何对图片批量重命名?
- 与判别网络对抗的生成网络 (Generative Adversarial Nets)
- 5G+AI技术到底是什么样的?一篇漫画告诉你答案
- ArcGIS对比MapInfo
- wps里的html怎么保存,用WPS 2012保存网页内容的实用方法
热门文章
- 2021-01-22 Science对于“Misused images”图片误用的报道
- 7-45 小何的旅行I分数 25
- 字节跳动推出在线医疗App“小荷” 品牌域名或要另辟蹊径?
- 【offerMe--面经必备】---京东面经分享(包含答案)
- R_数据视觉化处理_初阶_02
- 后OA时代:流程再造
- 基于微信小程序的音乐播放器设计
- php理论掌握太少,科学网—我为什么反对让学生过早地选课和选考 - 冯大诚的博文...
- three.js网页demo展示
- DSL 领域特定语言