LightOJ 1395 A Dangerous Maze (II) (概率dp)
题意:给出n扇门,每扇门都给出一个数x,若为正数,则表示在x时间后走出迷宫,若为负数,则表示在x时间后回到起点,你会记得最后k扇你走过的门(不会再走),求最后的期望时间。
题解:概率dp
这题的进阶版,原版不会记住走了哪扇门。一样的思路。
用dp[i]dp[i]dp[i]表示记住iii扇门之后走出去还需要的期望时间。
n1:正数数量 n2:负数数量
s1:正数之和 s2:负数之和
①当k>=n2时,dp[k] = s1 / n1
,相当于走任意一扇均可。
②当k<n2时,dp[k] = s1 / (n - k) + (n2 - k) * (dp[k] + s2 / n2) / (n - k)
,即走出去的期望时间+走回来再走出去的期望时间。化简得dp[k]dp[k]dp[k]即可。因为不确定走的哪扇负数的门,既然求期望,直接对于单扇门取平均值即可。
确定了终值,往前递推。
方程为:dp[i] = s1 / (n - i) + (n2 - i) * (dp[i + 1] + s2 / n2) / (n - i)
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<fstream>
#include<set>
#include<map>
#include<sstream>
#include<iomanip>
#define ll long long
using namespace std;
int t, n, k, a[111];
double dp[111];
int main() {int cas = 0;scanf("%d", &t);while (t--) {scanf("%d%d", &n, &k);double s1 = 0, s2 = 0, n1 = 0, n2 = 0;for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);if (a[i] > 0) n1++, s1 += a[i];else n2++, s2 += -a[i];}if (n2 == n) {printf("Case %d: -1\n", ++cas);continue;}if (k >= n2) dp[k = n2] = s1 / n1;else dp[k] = (s1 / (n - k) + (n2 - k) * (s2 / n2) / (n - k)) / (1 - (n2 - k) / (n - k));for (int i = k - 1; i >= 0; i--) {dp[i] = s1 / (n - i) + (n2 - i) * (dp[i + 1] + s2 / n2) * 1.0 / (n - i);}printf("Case %d: %f\n", ++cas, dp[0]);}return 0;
}
LightOJ 1395 A Dangerous Maze (II) (概率dp)相关推荐
- 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 - 1027】A Dangerous Maze(概率dp,数学期望)
题干: You are in a maze; seeing n doors in front of you in beginning. You can choose any door you like ...
- LightOJ - 1027 A Dangerous Maze —— 期望
题目链接:https://vjudge.net/problem/LightOJ-1027 1027 - A Dangerous Maze PDF (English) Statistics Fo ...
- LightOJ 1079 Just another Robbery【概率DP】
题目: As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (he wants ...
- 【LightOJ - 1030】Discovering Gold(概率dp,数学期望,期望的线性性)
题干: You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the ca ...
- HDU 4035 Maze(树形概率DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4035 题意:一棵树,从结点1出发,在每个结点 i 都有3种可能:(1)回到结点1 , 概率 Ki:(2 ...
- LightOJ 1038-Race to 1 Again(概率dp)
题意: 给你一个数n每一步这个数可以变为他的因子,直到这个数变为1,求n变到1的期望步数. 分析: dp[i],表示i变为1的期望步数,dp[1]=0,dp[n]是答案. dp[i]=sum(dp[j ...
- LightOj 1027 A Dangerous Maze
一个迷宫有n扇门,走第i扇门时间为xi,若xi为正,则走出迷宫,若xi为负,则回到原来位置并忘记已走过的门.问走出迷宫的时间期望,若不能走出迷宫输出inf,否则以分数形式输出p/q. 题目链接 我们设 ...
最新文章
- 13. python 类
- 2021聊城二中高考成绩查询,聊城高中成绩排名2021,聊城中考分数线排行榜
- 【转】Hadoop集群添加磁盘步骤
- 线程通信wait与notify
- Java-Web 基础加强之泛型、注解和Servlet3.0新特性
- qrcodejs2--Vue生成二维码组件封装
- 在HTML网页中使用ActiveX控件
- Python随机数生成方法
- 大家常用的 IDEA 插件大推荐,个个都得安装!
- 【java】浅析JDK中ServiceLoader的源码
- python工具包: argparse
- 东方通php支持,应用服务器TongWeb
- 浅析VO、DTO、DO、PO的概念、区别和用处
- android usb 摄像头 驱动开发,自制USB摄像头硬件的驱动编写_修改UVC
- [Objective-C]第一天
- CSS超链接标记大全
- 马来西亚-沙巴-亚庇游记
- 为啥一定要用残差图检查你的回归分析?
- 基于JSP的网上订餐管理系统的设计与实现
- 计算机中专综合知识,湖南省汨罗市职业中专高考(八)计算机应用专业综合知识试题讲解.doc...
热门文章
- PDPS软件:机器人外部柔性管线包模型导入与虚拟仿真操作方法
- 2022年6月大学英语六级翻译
- Greenplum 实时数据仓库实践(1)——数据仓库简介
- postgresql 并发访问_postgresql 并发update下导致的死锁问题
- 《Wireshark数据包分析实战(第2版)》目录—导读
- java 软件开发面试宝典
- 零基础边缘端智慧交通训练营 | Lesson 4
- CCjump解决:在微信中访问app下载链接提示“已停止访问该网页”
- java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...
- 没有 XXX 的手册页条目