[hdu4089] Activation【概率dp 数学期望】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4089
本来可以一遍过的,结果mle了一发。。。注意要用滚动数组。
令f(i, j)表示队列剩余i个人,这个人排第j时遇到那种情况的概率,则有
f(i, j) = p1 * f(i, j) + p2 * f(i, (j - 2) % i + 1) + p3 * f(i - 1, j - 1) + p4 * (j <= k).
注意最后哪里有一个强制转换,若j <= k则p4 * 1,若j > k则p4 * 0.把方程移项,得
f(i, j) = ( p2 * f(i, (j - 2) % i + 1) + p3 * f(i - 1, j - 1) + p4 * (j <= k) ) / (1 - p1).
这里最大的问题就是f(i, (j - 2) % i + 1),因为这个值在这之前不是已知的,不好转移。此时,把这个方程抽象出来,就变成了一个简单的一次方程,形如:
x[n] = p * x[n - 1] + a[n]
x[n - 1] = p * x[n - 2] + a[n - 1]
...
x[1] = p * x[n] + a[1].
这个一次方程自己在纸上写一写就知道如何解了,同理,可以通过这种方式求出所有的f值了。
#include <cstdio>
#include <cstring>
#include <cmath> const int maxn = 2010;
const double eps = 1e-8; int n, m, k;
double p1, p2, p3, p4, f[2][maxn], p, poww[maxn] = {1.0}, a; int main(void) {
//freopen("in.txt", "r", stdin);
while (scanf("%d%d%d%lf%lf%lf%lf", &n, &m, &k, &p1, &p2, &p3, &p4) != EOF) {
if (fabs(p1 + p2 - 1) < eps) {
puts("0.00000");
continue;
}
p = p2 / (1.0 - p1);
for (int i = 1; i <= n + 2; ++i) {
poww[i] = poww[i - 1] * p;
}
memset(f, 0, sizeof f);
f[1][1] = p4 / (1 - p1 - p2);
for (int i = 2; i <= n; ++i) {
f[i & 1][1] = p4 / (1.0 - p1);
for (int j = 2; j <= i; ++j) {
a = (p3 * f[i & 1 ^ 1][j - 1] + p4 * (double)(j <= k)) / (1.0 - p1);
f[i & 1][1] += a * poww[i + 1 - j];
}
f[i & 1][1] /= (1.0 - poww[i]); for (int j = 2; j <= i; ++j) {
f[i & 1][j] = (p2 * f[i & 1][j - 1] + p3 * f[i & 1 ^ 1][j - 1] + p4 * (double)(j <= k)) / (1.0 - p1);
}
}
printf("%.5f\n", f[n & 1][m]);
}
return 0;
}
[hdu4089] Activation【概率dp 数学期望】的更多相关文章
- [HDU4089]Activation(概率DP)
		
HDU4089 题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排 ...
 - bzoj1415 [Noi2005]聪聪和可可【概率dp 数学期望】
		
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1415 noip2016 D1T3,多么痛的领悟...看来要恶补一下与期望相关的东西了. 这是 ...
 - CF 148D D. Bag of mice (概率DP||数学期望)
		
The dragon and the princess are arguing about what to do on the New Year's Eve. The dragon suggests ...
 - [poj2096] Collecting Bugs【概率dp 数学期望】
		
传送门:http://poj.org/problem?id=2096 题面很长,大意就是说,有n种bug,s种系统,每一个bug只能属于n中bug中的一种,也只能属于s种系统中的一种.一天能找一个bu ...
 - [poj3744] Scout YYF I【概率dp 数学期望】
		
传送门:http://poj.org/problem?id=3744 令f(i)表示到i,安全的概率.则f(i) = f(i - 1) * p + f(i - 2) * (1 - p),若i位置有地雷 ...
 - [hdu4035] Maze【概率dp 数学期望】
		
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4035 真的是一道好题,题解比较麻烦,我自己在纸上写了好大一块草稿才搞出来,不用公式编辑器的话就很难看清楚 ...
 - HDU3853-LOOPS(概率DP求期望)
		
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
 - HDU4089/Uva1498 Activation 概率DP(好题)
		
题意:Tomato要在服务器上激活一个游戏,一开始服务器序列中有N个人,他排在第M位,每次服务器会对序列中第一位的玩家进行激活,有四种结果: 1.有p1的概率会激活失败,这时候序列的状态是不变的.2. ...
 - poj 2096 Collecting Bugs (概率dp  天数期望)
		
题目链接 题意: 一个人受雇于某公司要找出某个软件的bugs和subcomponents,这个软件一共有n个bugs和s个subcomponents,每次他都能同时随机发现1个bug和1个subcom ...
 
随机推荐
- jmeter的jmx脚本结构解析
			
jmeter的jmx脚本是xml文档,简单分析下其结构 xml是树形结构:jmeter界面的树形结构就是xml的结构 一级目录: 二级目录:在一级目录右键后可以看到的,都可以做为二级目录 三级目录.n ...
 - 怎样扩展EasyUI在页面中马上显示选中的本地图片
			
在编写前台页面的时候,有时须要将选中的图片夹杂着其它信息一起上传到服务端,在选着本地图片的时候,为了获得更好的效果,须要将该图片显示在页面上. 最初思路有两个.详细例如以下: 1.获取选中文件的二进制 ...
 - 创立一个站点的前前后后(起因,域名,云平台,备案,CDN等等)(1)
			
起因 写完<完美软件开发:方法与逻辑>这书后,原本想继续写书的,可出来參加了些社区活动后,我发现我写的书大家评价还行.但事实上不太理解.而接下来想写的书更加抽象点.准备叫<管理的解析 ...
 - COCOS2DX学习之Box2d物理引擎使用之------动态物体的创建
			
1.创建一个物理世界 首先要引入一个头文件#include "Box2D\Box2D.h" 之后利用b2word创建一个对象,而且指定这个物理世界中的加速度方向. word = n ...
 - CSS多种方法实现分隔线
			
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8" /> <title&g ...
 - jsp导出身份证到excel时候格式不正确
			
今天早上客户跟我说excel导出身份证的时候显示有的对有的不对,我一看原来身份证以X结尾的能够,其他都显示不对.身份正显示如图所看到的: 在网上搜了一下发现,原来excel看你数字列超过12位就会显示 ...
 - EJB学习笔记六(EJB中的拦截器)
			
1.前言 听到拦截器,预计都不陌生,尤其是在Servlet规范中,充分应用了拦截器的概念.EJB3也提供了拦截器的支持,本质上是轻量级的AOP实现.拦截器能够将多个业务方法中的通用逻辑从业务方法中抽 ...
 - FMDB中常用SQL使用
			
大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做“sqlite database brows ...
 - Unity即将到来的2D工具
			
孙广东 2015.7.5 看了一下对功能介绍的视频,确实功能强大. 可是须要FQ在youtube上观看,所以就下载下来了.能够浏览一下: http://www.iqiyi.com/playlist2 ...
 - apache httpd 2.4 httpd
			
This is a wiki containing user-contributed recipes, tips, and tricks for the Apache HTTP Server (aka ...