**** **** 黑白球|DP

摘要:
你每小时都随机从箱子里面抽出两个小球,然后把这两个球都染成黑球,然后再放回去。问需要多少小时才能把所有小球变成黑色小球?则$f[i][j]=*...+*...+f[i][j]...+1*...$移项得$f[i][j]=...+*...+1*...$(...)的部分请自行思考总结:理清思路,一个正推反推调了两天。据@info___tion,很多时候期望DP是往后推的(?

题意:一个箱子里面有n个黑球m个白球。你每小时都随机从箱子里面抽出两个小球,然后把这两个球都染成黑球,然后再放回去。问需要多少小时才能把所有小球变成黑色小球?输出期望值。

题解:

期望DP

(f[i][j])是到达(i)黑球与(j)白球的期望。

则$ f[i][j]=(f[i-1][j+1] +1)* ... + (f[i-2][j+2]+1)*...+f[i][j] ...+ 1 *... $

移项得$ f[i][j](1-...)=(f[i-1][j+1] +1) ... + (f[i-2][j+2]+1)*...+ 1 *... $

(f[i][j]=frac{(f[i-1][j+1] +1)* ... + (f[i-2][j+2]+1)*...+ 1 *... }{1-...})

(...)的部分请自行思考

总结:

理清思路,一个正推反推调了两天。

据@info___tion,很多时候期望DP是往后(结果往起点)推的(?

代码

#include<bits/stdc++.h>
using namespace std;
int t,n,m;double f[100][100];bool vis[100][100];
void dfs(int i,int j)
{
	if (i>=n+m&&j<=0) return ;
	if (vis[i][j]) return ;
	vis[i][j]=true;
	dfs(i+1,j-1);
	dfs(i+2,j-2);
	if (j-1>=0) f[i][j]=(f[i+1][j-1]+1.0)*((j*1.0)/(n+m) * (i*1.0)/(n+m-1.0)  
			+ (i*1.0)/(n+m) * (j*1.0)/(n+m-1.0)) ;
	if (j-2>=0) f[i][j]+=(f[i+2][j-2]+1.0)* (j*1.0)/(n+m)*(j-1.0)/(n+m-1.0);
	f[i][j]=(f[i][j] )/ (1.0-1.0* i/(n+m)*(i-1.0)/(n+m-1))+(1.0*i*1.0/(n+m)*(i-1.0)/(n+m-1.0))/(1.0-i*1.0/(n+m)*(i-1.0)/(n+m-1.0));
}
int main()
{
	freopen("2829.in","r",stdin);
	freopen("2829.out","w",stdout);
	cin>>t;
	for (int tt=1;tt<=t;tt++)
	{
		cin>>n>>m;
		for (int i=0;i<=n+m;i++)
		  for (int j=0;j<=m;j++)
		    f[i][j]=0,vis[i][j]=0;
		dfs(n,m);
		printf("%.8lf
",f[n][m]) ;
	}
	return 0;
}

免责声明:文章转载自《**** **** 黑白球|DP》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Genymotion的2个问题及解决方法VSFTP配置参考下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

帆软—FineBI5.1忘记管理员登录密码及用户名

1、 查找数据库。脚本文件查找数据库。脚本文件。...

Java连接Mysql数据库异常:Public Key Retrieval is not allowed

1) 设置dataSource。setAllowPublicKeyRetrieval通过代码;数据源。setUseSSL;2) 将jdbc url设置为jdbc:mysql://localhost:3306/Database_dbName?...

AntDesignVue中关于Table组件的使用

--下面这整个div都是设置每一列搜索的样式图标--˃searchInput=c":placeholder="`Search${column.dataIndex}`":value="selectedKeys[0]"@change="e=˃setSelectedKeys(e.target.value?...

华为 HG526 破解实录(一)Cfg文件加解密工具

几天前,我去中国电信安装E169软件包,并发送了一个华为HG526无线路由猫和一个中兴xxx网络机顶盒(尚未开始制造麻烦)。当然,无线路由猫一如既往地被阉割了。搜索之后,我开始了我的快攻之旅。1.打开catdrop管理页面,使用telecomadmin和nE7jA%5m登录;2.将U盘插入猫。3.开放式管理=˃设备管理、备份配置。4.打开U盘,放下ctce8...

Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1

3 MATLAB2009之后,并行计算工具箱和并行计算服务退出。通过PCT和DCS,用户可以实现基于多核平台、多处理器平台和集群平台的多个并行计算任务。除了支持上述通用功能外,PCT还增加了对GPU单元的支持。现在来看彼此已经太晚了:用parfor并行化for循环。在编程中,使计算量最小化的代码总是一个循环。7 parpool命令在不启动并行池的情况下配置并...

如何下载Chrome离线版EXE安装文件和MSI版安装文件

对于Chrome的稳定版本(官方版本),您只需添加“?”在Chrome的“最终用户许可协议”页面上的链接之后?Standalone=1对于Beta版和开发版Chrome,只需记住以下地址:http://dl.google.com/chrome/install/{versionnumber}/crome_安装程序中的版本号。exe表示要下载的Chrome版本号...