JoyfulHDU - 5245

  题目大意:有N*M个正方形,进行k次涂色,每次会随机的选两个正方形作为一个矩形区域的顶点,然后把这个区域内的涂色,最后问k次之后,预计被涂了色的正方形有几个(也就是数学期望),转化成整数输出。

  数学期望的定义是一切可能的取值xi与对应的概率Pi(=xi)之积的和,所以就想到了求出每个正方形被涂色的概率,然后一个正方形的权值就是1,所以把每个正方形的被涂色的概率加起来就是答案。因为是进行k次涂色,那么k中至少有一次被涂到的概率就是1-k次都涂不到的概率。

  至于怎么算它不被涂到的概率呢?首先因为作为顶点的两个正方形是选择是互不影响的,每个都有n*m种选择,所以总的方案就是n*m*n*m。然后不把当前正方形包含在矩形内的方案有多少,可以画图理解。

  

  红色正方形就是我们目前要求的正方形,因为不能把它包含在内,那么两个正方形的选择应该在同一侧,就像上图的蓝色部分,然后在同一侧的两个正方形的选择是互不影响的,也就是所有正方形个数的平方。而蓝色部分重叠了绿色部分,所以绿色部分得去掉。

 #include<cstdio>
#define pf(x) (x*x)
typedef long long ll;
int main()
{
int t=,T,n,m,k;
scanf("%d",&T);
while(t<=T)
{
scanf("%d%d%d",&n,&m,&k);
ll sum=1ll*pf(n)*pf(m);
double ans=0.0;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
ll num=;
num+=pf(1ll*n*(j-))+pf(1ll*n*(m-j));//左右两侧的方案
num+=pf(1ll*m*(i-))+pf(1ll*m*(n-i));//上下两侧的方案
num-=pf(1ll*(i-)*(j-))+pf(1ll*(i-)*(m-j));//上侧两角的方案
num-=pf(1ll*(n-i)*(j-))+pf(1ll*(n-i)*(m-j));//下侧两角的方案
double no=1.0*num/sum,kno=1.0;
for(int kk=;kk<k;kk++)
kno*=no;
ans+=1.0-kno;
}
printf("Case #%d: %.0f\n",t++,ans);
}
return ;
}

我不是一个粉刷匠

HDU - 5245 概率的更多相关文章

  1. Joyful HDU - 5245 概率问题

    Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a wall that looks ...

  2. J - Joyful HDU - 5245 (概率)

    题目链接: J - Joyful  HDU - 5245 题目大意:给你一个n*m的矩阵,然后你有k次涂色机会,然后每一次可以选定当前矩阵的一个子矩阵染色,问你这k次用完之后颜色个数的期望. 具体思路 ...

  3. HDU 5985 概率

    n种硬币各有cnt[i]枚,每轮下其有p[i]概率保留,问各种硬币只有它存活到最后一轮的概率. 设k轮后i硬币存活概率$a[i][k]=(1-p^k_i)^{cnt[i]}$ 则最后只有第i种硬币存活 ...

  4. HDU 5245 Joyful(概率题求期望)

    D - Joyful Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit S ...

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

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

  6. HDU 5245 Joyful(期望)

    http://acm.hdu.edu.cn/showproblem.php?pid=5245 题意: 给出一个n*m的矩阵格子,现在有k次操作,每次操作随机选择两个格子作为矩形的对角,然后将这范围内的 ...

  7. hdu 1203 概率+01背包

    I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Sub ...

  8. HDU 4405 (概率DP)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 题目大意:飞行棋.如果格子不是飞行点,扔骰子前进.否则直接飞到目标点.每个格子是唯一的飞行起点 ...

  9. hdu 4465 概率称号

    http://acm.hdu.edu.cn/showproblem.php?pid=4465 第一直觉概率DP但很快被否定,发现只有一个简单的二项分布,但感情的表达,没有对生命和死亡的例子.然后找到准 ...

随机推荐

  1. Python特色数据类型--列表

    #list[起始索引:终止索引(不包含):步长间隔] list1[5:8] #步长省略则默认为1 #修改元素列表 #列表是一种可变的数据类型,所以可以修改内容 list1 = [0,1,2,3,4] ...

  2. 学习实践:使用模式,原则实现一个C++数据库访问类

    一.概述 在我参与的多个项目中,大家使用libMySQL操作MySQL数据库,而且是源码即复用,在多个项目中有多套相同或相似的源码,这样的复用方式给开发带来了不变,而且libMySQL的使用比较麻烦, ...

  3. 什么是IOC和什么是AOP,依赖注入(DI)和Ninject,Ninject

    我们所需要的是,在一个类内部,不通过创建对象的实例而能够获得某个实现了公开接口的对象的引用.这种“需要”,就称为DI(依赖注入,Dependency Injection),和所谓的IoC(控制反转,I ...

  4. 【ExtJs】ext前台中的日期控件传输时间到后台的转换保存过程

    //前台日期选择框 {fieldLabel:, padding: ',afterLabelTextTpl: required,allowBlank: false,format: 'Y-m-d H:i: ...

  5. 根据返回数据, 迭代数组, 构造HTML结构

    首先需要引入jQuery哈! 1. 要求用下面的格式制作目录, 结构如下: <ul> <li>xxxx</li> <li>xxxx</li> ...

  6. span 如何移除点击事件

    //设置点击事件不可用 $("#verificode").css("pointer-events", "none"); //倒计时完毕,点击 ...

  7. Redis-ZSet常用命令

    Redis-ZSet常用命令 zadd key score member[{score member}-] 创建或设置指定key对应的有序集合,根据每个值对应的score来排名,升序.例如有命令 za ...

  8. Struts简单的实例

    一.创建Aciton类 package com.my.frame; public class HelloWordAction { private String name; public String ...

  9. Nginx 无法重启

    报错如下 Starting nginx... nginx (pid)already running. 重启nginx时,说多个进程已存在,,, 执行 ps -ef | grep nginx 发现 有多 ...

  10. MacOs上的Intellij idea高频快捷键总结(2018.1版本)

     高频快捷键   查找类快捷键           command + F12      查看当前类方法变量           command + E         查看最近文件   Alt+F1 ...