zoukankan      html  css  js  c++  java
  • J

    题目链接:

    J - Joyful

     HDU - 5245 

    题目大意:给你一个n*m的矩阵,然后你有k次涂色机会,然后每一次可以选定当前矩阵的一个子矩阵染色,问你这k次用完之后颜色个数的期望。

    具体思路:颜色个数的期望等于每一个方块单独的期望加起来,就是总的期望。

    对于当前的方块的期望,我们先计算这个方块不会出现的概率,就是当前的(x,y),先计算出当前的两个点在他周围四整块的出现的概率,但是这样四个角会重复计算,再去掉就好了。

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 # define ll long long
     4 const int maxn = 2e5+100;
     5 int main()
     6 {
     7     int T;
     8     int Case=0;
     9     scanf("%d",&T);
    10     while(T--)
    11     {
    12         ll n,m,k;
    13         scanf("%lld %lld %lld",&n,&m,&k);
    14         double sum=0;
    15         for(ll   i=1; i<=n; i++)
    16         {
    17             for(ll   j=1; j<=m; j++)
    18             {
    19                 ll tmp=0;
    20                 tmp+=(ll)(i-1ll)*m*(i-1ll)*m;
    21                 tmp+=(ll)(j-1ll)*n*(j-1ll)*n;
    22                 tmp+=(ll)(n-i)*m*(n-i)*m;
    23                 tmp+=(ll)(m-j)*n*(m-j)*n;
    24 
    25                 tmp-=(ll)(i-1ll)*(j-1ll)*(i-1ll)*(j-1ll);
    26                 tmp-=(ll)(n-i)*(j-1ll)*(n-i)*(j-1ll);
    27                 tmp-=(ll)(i-1ll)*(m-j)*(i-1ll)*(m-j);
    28                 tmp-=(ll)(n-i)*(m-j)*(n-i)*(m-j);
    29                 double ans=(tmp*1.0)/(n*n*m*m);
    30                 ans=pow(ans,k);
    31                 sum+=1.0-ans;
    32             }
    33         }
    34         ll tmp=round(sum);
    35         printf("Case #%d: %d
    ",++Case,tmp);
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    [Codeforces 140C] New Year Snowmen
    [Codeforces Round511C] Enlarge GCD
    [BZOJ 1251] 序列终结者
    [NOIP 2016] 愤怒的小鸟
    [POJ 1860] Currency Exchange
    [ZJOI 2006] 书架
    [NOIP 2010] 引入入城
    [NOI 2014] 起床困难综合征
    用C语言实现中文到unicode码的转换
    strdup与strndup
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10792650.html
Copyright © 2011-2022 走看看