Vjudge 20220421练习10 B Joyful HDU - 5245
作者:互联网
written on 2022-04-22
题目描述:
有一个含有M*N个格子的矩形,每次随机两个点(x1,y1)(x2,y2),把这两个点构成的子矩阵内的格子都染色。随机染K次,求最后被染色格子的期望个数。
期望题,拿到题目后,因为是求被染色的格子的期望个数,那么这个期望显然就是每个格子被染色的概率乘以 \(1\) 然后对其求和
那么对于每一个格子进行分析,因为有 \(K\) 次染色操作,根据分步计数原理,每次被染色概率相乘就是总概率。然后又因为被染色概率不太好求,所以先求单次不被染色的概率,用一减便是了
单次不被染色的概率:对于点 \((i,j)\),分四块进行考虑,减掉重复的就是满足条件的情况数,比上总方案数就是概率了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m,k;
int main()
{
int T;
scanf("%d",&T);
for(int rnd=1;rnd<=T;rnd++)
{
scanf("%d%d%d",&n,&m,&k);
ll all=1ll*n*n*m*m;
double ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
ll t1=1ll*(i-1)*(i-1)*m*m+1ll*(j-1)*(j-1)*n*n+1ll*(n-i)*(n-i)*m*m+1ll*(m-j)*(m-j)*n*n;
ll t2=1ll*(i-1)*(i-1)*(j-1)*(j-1)+1ll*(i-1)*(i-1)*(m-j)*(m-j)+1ll*(j-1)*(j-1)*(n-i)*(n-i)+1ll*(n-i)*(n-i)*(m-j)*(m-j);
ans+=1-pow((t1-t2)*1.0/all,k);
}
}
printf("Case #%d: %.0lf\n",rnd,ans);//
}
}
其实是一道简单题,同类题做的太少了,刚开始一直在用单次被染色几个分类考虑就直接想偏了
标签:10,HDU,概率,期望,格子,5245,染色,int,单次 来源: https://www.cnblogs.com/Freshair-qprt/p/16537684.html