首页 > 其他分享 >概率dp

概率dp

时间:2024-05-18 15:52:24浏览次数:17  
标签:概率 int double 黑鼠 ans dp

概率dp

首先是正着递推的计算概率的dp问题

https://ac.nowcoder.com/acm/contest/28263/A

纯数学题

对随机的数字大小分类讨论,计算概率的时候利用高中几何概型的线性规划手法进行计算。

double g=0.5;
void solve(){
	double k,x;cin>>k>>x;
	double ans=0;
	if(k==x)ans=g;
	else if(k>=2*x)ans=0;
	else if(k<x){
		ans=g*(x*x-k*k);
		ans/=x*x;
		ans+=g;
	}
	else {
		ans=g*(2*x-k)*(2*x-k);
		ans/=x*x;;
	}
	baoliu(ans,2);
	cout<<endl;
}

CF148D Bag of mice

img

状态:\(f[i][j]\)表示袋中有i只白鼠j只黑鼠时,A获胜的概率

起点:\(f[0][i]=0,f[i][0]=1\)
终点:\(f[w][b]\)
转移:
1.先手拿到白鼠:\(f[i][j]+=i/(i+j)\)
2.先手黑鼠,后手白鼠:\(f[i][j]+=0,\) 这种情况不用处理
3.先手黑鼠,后手黑鼠,跑白鼠:\(f[i][j]+=j/(i+j) *(j-1)/(i+j-1) *i/(i+j-2) *f[i-1][j-2]\)
4.先手黑鼠,后手黑鼠,跑黑鼠:\(f[i][j]+=j/(i+j) *(j-1)/(i+j-1) *(j-2)/(i+j-2) *f[i][j-3]\)

int n, m;
int a[N];
//两个人各操作一次为1轮
double f[N][N];
void solve(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		f[i][0]=1;
		
	}
	for(int i=1;i<=m;i++){
		f[0][i]=0;
	}
	for(int i=1;i<=n;i+=1.0){
		for(int j=1;j<=m;j+=1.0){
			f[i][j]+=(double)i/(i+j);
  if(i>=1 && j>=2)
  f[i][j]+=f[i-1][j-2]*(double)j*(j-1)*(i)/(double)((i+j)*(i+j-1)*(i+j-2));
  if(j>=3)
  f[i][j]+=f[i][j-3]*(double)j*(j-1)*(j-2)/(double)((i+j)*(i+j-1)*(i+j-2));
  //cerr<<f[i][j]<<" ";
		}
	}
	baoliu(f[n][m],9);
}

POJ3071 Football

题意:有2^n支球队比赛,每次和相邻的球队踢,两两淘汰,给定任意两支球队相互踢赢的概率,求最后哪只球队最可能夺冠

img

img

Solution:考虑\(f[i][j]\)是第i次大混战编号为j的队伍获胜的概率,考虑转移需要找到本轮的对手,并调用其获胜的概率。由于n范围很小,直接暴力枚举即可。核心问题是如何找到合法可能的对手,我们观察后利用位运算得到。

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define baoliu(x,y) cout<<fixed<<setprecision(y)<<x;
const int N=130;
double w[N][N];
double f[8][N];
//f[i][j]:第i场,第j队win的概率
int main(){
	int n;
	//从0下标开始才能在后续进行高效位运算
while(cin>>n,n!=-1){
	//对于这种多测也考虑写成solve函数,忘清空了
	int m=1<<n;
	memset(f,0,sizeof f);
	for(int i=0;i<m;i++){
		for(int j=0;j<m;j++){
			cin>>w[i][j];
		}
	}
	for(int i=0;i<m;i++)f[0][i]=1;
	for(int i=1;i<=n;i++){
		for(int j=0;j<m;j++){
			for(int k=0;k<m;k++){
				if(((j>>(i-1))^1)==(k>>(i-1))){
					//所有情况的获胜概率是累加的
					f[i][j]+=f[i-1][j]*f[i-1][k]*w[j][k];
				}
			}
		}
	}
	double mx=0;int pos=0;
	for(int i=0;i<m;i++){
		if(mx<f[n][i]){
			mx=f[n][i];
			pos=i;
		}
	}
	//仔细读题发现,队伍编号从1开始,而我从0开始是为利用位运算
	cout<<pos+1<<endl;
}
}

[CF768D Jon and Orbs](https://www.luogu.com.cn/problem/CF768D

题面翻译

有k件物品,每天随机出现一件。设每种球都出现至少一次以上为事件U.

求最小天数使得U发生的概率不小于\(\frac{p}{2000}\),有 \(q\) 组询问,每组询问给定这个 \(p\)。

Solution

标签:概率,int,double,黑鼠,ans,dp
From: https://www.cnblogs.com/mathiter/p/18199397

相关文章

  • [动态规划] 区间 dp
    区间dp石子合并将区间长度\(len\)作为\(dp\)的阶段设\(f[l][r]\)表示把最初的第\(l\)堆到第\(r\)堆石子合并成一堆,需要消耗的最少体力。合并代价就是这两堆石子的质量和,这里可以用前缀和直接计算,设\(s[i]\)表示前\(i\)堆石子的质量和。状态转移方程:\[f[l][r]......
  • WordPress古腾堡编辑器和经典编辑器详细对比,哪个好用?
    WordPress古腾堡编辑器(GutenbergEditor)是WordPress5.0版本引入的默认编辑器,取代了之前的经典编辑器。古腾堡编辑器的设计理念是基于“块”(blocks),让用户能够更直观、灵活地编辑内容。WordPress经典编辑器是WordPress5.0版本之前的默认编辑器,它采用传统的单个文本框界面,用户可以......
  • C122 李超树合并+DP CF932F Escape Through Leaf
    视频链接:C122李超树合并+DPCF932FEscapeThroughLeaf_哔哩哔哩_bilibili   C65【模板】线段树合并P4556[Vani有约会]雨天的尾巴-董晓-博客园(cnblogs.com)CF932FEscapeThroughLeaf#include<iostream>#include<cstring>#include<algorithm>using......
  • 240503好题选讲:概率和期望
    240503好题选讲:概率和期望期望的计算公式:\[E(X)=\sum_ii\timesP(x=i)\]期望的线性性:\[E(X+Y)=E(X)+E(Y),E(kX)=kE(x)\]A百事世界杯之旅B收集邮票一句话题意:\(n\)种邮票,每次等概率选取一张,第\(i\)张的价格是\(i\),问:标准版:集齐\(n\)种邮票所需要购买的期望......
  • 线头 DP 问题
    引入对于一种需要通过相邻两项来维护的一些DP问题,通常的DP会无法转移。这时便要使用线头DP。这种DP又名连续段DP,其关键在于维护已近满足条件的不同连续段的贡献总和。线头DP本质上只是一种转移状态,这种状态能与排列成双射的同时,还能只考虑两端的性质来使状态便于记录......
  • 实战项目-基于K8s平台进行wordpress建站
    (240516更新)基本信息系统:Debian12.05k8s版本:1.30环境:虚拟机序号IP地址域名主机名1192.168.100.12k8s-master.$yourname.comk8s-master2192.168.100.15k8s-node1.yourname.comk8s-node13192.168.100.16k8s-node2.yourname.comk8s-node24192.168......
  • 概率期望
    概率是某一个随机变量出现某个值的次数/总数。期望是这个随机变量的值的平均数。平均值=每一种可能的值*概率=所有可能/总方案数,令\(E(s)\)表示\(s\)这个随机变量的期望,所有\(E(x+y)=E(x)+E(y),E(ax+by)=E(ax)+E(by)\)概率DP转移就是从上一......
  • SDP协议
    会话描述协议,一般用国标SIP交互媒体信息(offer和应答),RTSP中describe协商媒体信息(只有应答的SDP,没有offer_sdp),webrtc协议交互阶段(offer和answer)时候回存在;本例只介绍SIP-SDP,对于荷载它的协议不做描述原文:https://sharetechnote.com/html/IMS_SIP_SDP.html1国标交互的时候为了让......
  • 期望DP
    基本模型对于任意状态A,已知①状态A所有后继状态②设从状态A转移到后继状态B的概率是P(A,B),则∑P(A,B)=1③从状态A转移到状态B的花费是W(A,B)求解:从起始状态S到终止状态T的期望花费求解的基本模式设E(A)表示从状态A到终止状态T的期望花费,初值:E(T)=0......
  • Android WebView 加载 html页面 实现 不同分辨率 不同 dpi 缩放自适应处理 解决方案
    两种情况一起使用实现不同分辨率不同dpi缩放自适应处理//webview需要配置mWebView.getWebSetting().setUseWideViewPort(true);//让webview读取网页设置的viewport,pc版网页1、同分辨率不同dpi缩放自适应处理(也可以在android端注入相关js代码)<scripttype="text/......