HDU 5245 Joyful (2015年上海大都赛J题,概率)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5245

题意:

给定一个n*m的矩形,由n*m个格子组成,我们可以选k次,每次可以选择的两个格子

这两个格子作为矩形的对角线可以确定一个矩形,这个矩形里的所有小格子都会被覆

盖,求k次后,被覆盖的格子的个数的期望。

分析:

棋盘被覆盖的格子数的期望 = 每个格子被覆盖的概率的和。

每次选择的方案有n*m*n*m种。

格子坐标为(i,j)被覆盖的方案数为:

tot = 2*(2*(i*j*(n-i+1)*(m-j+1))-(i*(n-i+1)+j*(m-j+1))+1)-1

因此一次被覆盖的概率 p = tot/(n*n*m*m)  注意分母可能会爆int.

那么这个点k次选择被覆盖的概率为 1-(1 - p)^k;

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>

#define PB push_back
#define MP make_pair
#define REP(i,n) for(int i=0;i<(n);++i)
#define FOR(i,l,h) for(int i=(l);i<=(h);++i)
#define DWN(i,h,l) for(int i=(h);i>=(l);--i)
#define IFOR(i,h,l,v) for(int i=(h);i<=(l);i+=(v))
#define CLR(vis) memset(vis,0,sizeof(vis))
#define MST(vis,pos) memset(vis,pos,sizeof(vis))
#define MAX3(a,b,c) max(a,max(b,c))
#define MAX4(a,b,c,d) max(max(a,b),max(c,d))
#define MIN3(a,b,c) min(a,min(b,c))
#define MIN4(a,b,c,d) min(min(a,b),min(c,d))
#define PI acos(-1.0)
#define INF 1000000000
#define LINF 1000000000000000000LL
#define eps 1e-8
#define LL long long
using namespace std;

const int maxn = 510;

LL num[maxn][maxn];
LL cnt[maxn][maxn];

int main()
{
    int t,cas=1,k;
    LL n,m;
    scanf("%d",&t);
    while(t--){
        scanf("%lld%lld%d",&n,&m,&k);
        //CLR(num);
        //CLR(cnt);
        /*FOR(i,1,n){
            FOR(j,1,m){
                FOR(p,1,n){
                    FOR(q,1,m){
                        FOR(s,min(i,p),max(i,p))
                            FOR(d,min(j,q),max(j,q))
                                num[s][d]++;
                    }
                }
            }
        }*/
        FOR(i,1,n){
            FOR(j,1,m)
                cnt[i][j]=2*(2*(i*j*(n-i+1)*(m-j+1))-(i*(n-i+1)+j*(m-j+1))+1)-1;
        }
        /*FOR(i,1,n){
            FOR(j,1,m)
                cout<<num[i][j]<<" ";
            cout<<endl;
        }
        FOR(i,1,n){
            FOR(j,1,m)
               if(cnt[i][j]>(LL)n*n*m*m) cout<<cnt[i][j]<<" ";
            cout<<endl;
        }*/
        double ans = 0;
        FOR(i,1,n){
            FOR(j,1,m){
                double p =1.0 - cnt[i][j]*1.0/n/n/m/m;
                ans=ans+1-pow(p,k*1.0);
            }
        }
        //cout<<"ans: "<<ans<<endl;
        printf("Case #%d: %d\n",cas++,(int)(ans+0.5));
    }
    return 0;
}
时间: 2024-10-14 09:11:43

HDU 5245 Joyful (2015年上海大都赛J题,概率)的相关文章

ACM 2015年上海区域赛A题 HDU 5572An Easy Physics Problem

题意: 光滑平面,一个刚性小球,一个固定的刚性圆柱体 ,给定圆柱体圆心坐标,半径 ,小球起点坐标,起始运动方向(向量) ,终点坐标 ,问能否到达终点,小球运动中如果碰到圆柱体会反射. 学到了向量模板,写法简洁. 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define clc(a,b) sizeof(a,b,sizeof(a)) 6

Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)

Time Limit: 5000MS Memory limit: 65536K 题目描写叙述 Haveyou ever played a popular game named "Fruit Ninja"? Fruit Ninja (known as Fruit Ninja HD on the iPad and Fruit Ninja THD for NvidiaTegra 2 based Android devices) is a video game developed by Hal

西电校赛网络赛J题 lucas定理计算组合数

西电校赛网络赛J题  lucas定理计算组合数 问题 J: 找规律II 时间限制: 1 Sec  内存限制: 128 MB 提交: 96  解决: 16 [提交][状态][讨论版] 题目描述 现有数阵如下: 1    2  3   4     5    6 1   3   6  10  15 1   4  10   20 1   5   15 1    6 1 求这个数阵的第n行m列是多少(行列标号从1开始) 结果对10007取模 输入 多组数据,每组数据一行,包含两个整数n,m(1<=n<=

浙江2012年省赛J题 Modular Inverse

Modular Inverse Time Limit: 2000MS   Memory Limit: 65535KB   64bit IO Format: Submit Status Description The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x (mod m). This is equivalent to ax≡1 (mod m). I

hdu 5475 模拟计算器乘除 (2015上海网赛F题 线段树)

给出有多少次操作 和MOD 初始值为1 操作1 y 表示乘上y操作2 y 表示除以第 y次操作乘的那个数 线段树的叶子结点i 表示 第i次操作乘的数 将1替换成y遇到操作2 就把第i个结点的值 替换成1利用线段树的性质,对整个1~n的区间进行维护,每次输出sum[1]的值即可 Sample Input110 10000000001 22 11 21 102 32 41 61 71 122 7 Sample OutputCase #1:2122010164250484 1 # include <i

HDU 5245 Joyful (概率题 求期望)

Joyful Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 478    Accepted Submission(s): 209 Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a

hdu 5245 Joyful(期望)

Joyful Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1243    Accepted Submission(s): 546 Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a

HDU 5245 Joyful

传送门 Joyful Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 781 Accepted Submission(s): 339 Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a w

hdu 5245 Joyful(期望的计算,好题)

Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to paint a wall that looks like an M×N matrix. The wall has M×N squares in all. In the whole problem we denotes (x,y) to be the square at the x-th row, y-th