标签:10 HDU 概率 期望 格子 5245 染色 int 单次
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。