HDU 5245 上海大都会 J题 (概率期望)

这道题的概率可以单独考虑每个格子对期望的贡献值。因为其实每个格子是否被选都可以认为是独立的,单独一个格子贡献的期望为1*(该格子K次被选的概率),所以答案其实就是每个格子K次被选中的概率之和。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL long long 
using namespace std;

int main(){
	LL n,m; int k;
	int T,icase=0;
	scanf("%d",&T);
	while(T--){
		scanf("%lld%lld%d",&n,&m,&k);
		double output=0;
		for(LL i=1;i<=n;i++){
			for(LL j=1;j<=m;j++){
				LL ans=(i-1)*(i-1)*m*m;
				ans+=(n-i)*(n-i)*m*m;
				ans+=n*n*(j-1)*(j-1);
				ans+=n*n*(m-j)*(m-j);
				ans-=(i-1)*(i-1)*(j-1)*(j-1);
				ans-=(n-i)*(n-i)*(j-1)*(j-1);
				ans-=(i-1)*(i-1)*(m-j)*(m-j);
				ans-=(n-i)*(n-i)*(m-j)*(m-j);
				double p=ans*1.0/(n*n*m*m);
				double tmp=1.0;
				for(int c=1;c<=k;c++)
				tmp*=p;
				output+=(1.0-tmp);
			}
		}
		printf("Case #%d: %.0f
",++icase,(output));
	}
	return 0;
}

  

 
原文地址:https://www.cnblogs.com/jie-dcai/p/4539423.html