[hdu5245]Joyful

很难考虑矩形覆盖的问题,但可以考虑每一个点被覆盖的概率/期望(把矩形分成九部分后容斥即可),sigma起来即答案

 1 #include
 2 using namespace std;
 3 int t,n,m,k;
 4 long long s,sum;
 5 double ans;
 6 int main(){
 7     scanf("%d",&t);
 8     for(int ii=1;ii<=t;ii++){
 9         scanf("%d%d%d",&n,&m,&k);
10         ans=0;
11         sum=1LL*n*n*m*m;
12         for(int i=1;i<=n;i++)
13             for(int j=1;j<=m;j++){
14                 s=4LL*i*j*(n-i+1)*(m-j+1)-2*i*(n-i+1)-2*j*(m-j+1)+1;
15                 ans+=1-pow(1.0*(sum-s)/sum,k);
16             }
17         printf("Case #%d: %.0f\n",ii,ans);
18     }
19 }
View Code

 

转载于:https://www.cnblogs.com/PYWBKTDA/p/11286385.html

你可能感兴趣的:([hdu5245]Joyful)