首页 > 其他分享 >矩形粉刷(期望)

矩形粉刷(期望)

时间:2022-08-21 14:12:10浏览次数:59  
标签:概率 期望 格子 样例 粉刷 染上 矩形

题面

题目描述

为了庆祝新的一年到来,小M决定要粉刷一个大木板。大木板实际上是一个W*H的方阵。小M得到了一个神奇的工具,这个工具只需要指定方阵中两个格子,就可以把这两格子为对角的,平行于木板边界的一个子矩形全部刷好。小M乐坏了,于是开始胡乱地使用这个工具。
假设小M每次选的两个格子都是完全随机的(方阵中每个格子被选中的概率是相等的),而且小M使用了K次工具,求木板上被小M粉刷过的格子个数的期望值是多少。

输入格式

第一行是整数K,W,H

输出格式

一行,为答案,四舍五入保留到整数。

样例

样例输入

1 3 3

样例输出

 4

样例解释

准确答案约为3.57

数据范围与提示

100% 的数据满足:1 ≤ W, H ≤ 1000, 0 ≤ K ≤ 100

 

思路

显然我们不能枚举每个矩形,那么利用期望的线性性,考虑每个格点的贡献,即它被多少个不同的矩形包含。(左上×右下+左下×右上)×2大概是这样,但还有一些重复情况要减去。

                      i*j*(w-i+1)*(h-j+1)                                          (w-i+1)*j*(h-j+1)*i

 

 

看得出重复的是中间十字矩形  i*(w-i+1)+j*(h-j+1)  

 

 

 因为(i,j)(j,i)是不同的矩形,所以要×2。格点自身形成的矩形被+2-2后还要加上

那么对于格点(i,j),染1次色它被染上的概率为

((i*j*(w-i+1)*(h-j+1)*2-i*(w-i+1)-j*(h-j+1))*2+1)1.0/(w*w*h*h)*1.0

 

现在关注格点染k次色被染上的概率,一开始想计算第1次染上的概率+第2次染上的概率+……+第k次染上的概率,每次都不同,所以不是很实际(有不嫌麻烦的勇士这样做吗?让我膜拜一下。TLE的也可以

欸,我们反向操作一波,算格点染k次都没染上的概率,再用1一减 一股子容斥味

 而这k次的概率就相同了 (1次没染上的概率)k

1次没染上的概率就是1-1次染上的概率 禁止套娃

ps:这么简单,真的还需要代码吗

代码

    k=read();w=read();h=read();
    for(int i=1;i<=w;++i)
        for(int j=1;j<=h;++j){
            double a=i*j*(w-i+1)*(h-j+1)*2-i*(w-i+1)-j*(h-j+1);
            a=(a*2+1)*1.0/(w*w*h*h)*1.0;
            ans+=1.0-power(1-a,k);
        }
    printf("%.0f",ans);
View Code

 

 

标签:概率,期望,格子,样例,粉刷,染上,矩形
From: https://www.cnblogs.com/yswn/p/16608688.html

相关文章

  • 扑克牌(期望DP)
    题意Rainbow把一副扑克牌(\(54\)张)随机洗开,倒扣着放成一摞。然后Admin从上往下依次翻开每张牌,每翻开一张黑桃、红桃、梅花或者方块,就把它放到对应花色的堆里去。Rainb......
  • 概率期望
    蚊子(A4)作为一只明媚的兔子,要会叠被子,又得会打蚊子…兔子住在兔子洞里。兔子洞可以看成是一棵无根树,有n个洞穴,有n-1条通道连接着n个洞穴。每天晚上,兔子会在1号洞穴里缩......
  • Java小练习(rectangle矩形)
    Java小练习(rectangle矩形)知识点:方法声明题目一编写程序,声明一个method方法,在方法中打印一个10*8的*型矩形,在main方法中调用该方法代码packageexer;​publicclassre......
  • 直方图中最大的矩形
    直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的......
  • leetcode85-最大矩形
    最大矩形dp+单调栈对每一层维护本列中形成的最高值height,然后对每一层分别计算最大的矩形。计算每一层最大矩形的时候,先用单调栈记录小于当前位置的左下标和右下标,矩......
  • 期望dp
    期望的线性性质:E(ax+by)=aE(X)+bE(Y)1-n总长度的期望到达某个结果的期望值=这个结果*从起始状态到这个状态的概率f[i]=∑1/k*(w[i]+f(S[i])f[i]表示从i走到n的期......
  • Android自定义矩形View中任意拖动圆点获取色温值(RectangleWheel)
    如图所示:矩形色温条中,拖动圆点获取当前色温值  1、自定义属性res->values下创建attrs.xml文件<declare-styleablename="RectangleWheel"><!--矩形宽高......
  • css画矩形的凹陷及突出效果box-shadow
    外边框颜色渐变 background:linear-gradient(toright,white,#f0f6fe,#e5eff7); border:solid2px#d3def2; margin:10px0; padding:12px16px18px;......