HDU
来源:互联网 发布:阿里云域名与ip绑定 编辑:程序博客网 时间:2024/06/01 07:48
题意:给定一个n*m(n,m <= 500)的方格进行K(K <= 20)次染色,每次染色会随机选取一个以(x1,y1),(x2,y2)为一组对角的子矩阵进行染色,求K次染色后染色面积的期望值(四舍五入)。
思路:设随机一次方格(i,j)被染色的概率为p,不被染色的概率为(1 - p),方格(i,j)在k次中被染色为在k次中没有被染色的逆事件,故方格(i,j)被染色的概率为1 - (1 - p)^k。
求方格(i,j)一次被染色的概率,可以将整个方格分为9块区域,5为(i,j)。
1
2
3
4
5
6
7
8
9
第一次选的点位置有九种, 然后分别求出对应的第二个点的种数。然后除以总种数n*n*m*m。#include <cstdio>#include <algorithm>#include <iostream>#include<vector>#include<cmath>#include<set>#include<cstring>#include<sstream>#include<queue>#include<map>using namespace std;typedef long long ll;const int maxn = 1299709 + 10;const int maxt = 100200;const int inf = 0x3f3f3f3f;const ll INF = 0x7f7f7f7f7f7f7f7f;const int mod = 1e9 + 7;const double pi = acos(-1.0);const double eps = 1e-8;int n, m, k;ll cal(int x, int y){ //计算一个格子被选中的次数 ll c1 = (x - 1) * (y - 1), c2 = x - 1, c3 = (x - 1) * (m - y), c4 = y - 1, c5 = 1, c6 = m - y, c7 = (y - 1) * (n - x), c8 = n - x, c9 =(n - x) * (m - y); // 第一个格子有九种情况 ll d1 = (n - x + 1) * (m - y + 1), d2 = m * (n - x + 1), d3 = (n - x + 1) * y, d4 = n * (m - y + 1), d5 = n * m, d6 = n * y, d7 = (m - y + 1) * x, d8 = m * x, d9 = x * y; // 对应的第二个格子的情况 return (c1 * d1 + c2 * d2 + c3 * d3 + c4 * d4 + c5 * d5 + c6 * d6 + c7 * d7 + c8 * d8 + c9 * d9);}int main(){ int T, kase = 0; scanf("%d", &T); while(T--){ scanf("%d%d%d", &n, &m, &k); ll sum = (ll)n * m * n * m; // 总的情况 double ans = 0; for(int i = 1; i <= n; ++i){ for(int j = 1; j <= m; ++j){ double p = (double)cal(i, j) / sum; ans += 1 - pow(1 - p, k); } } printf("Case #%d: %d\n", ++kase, (int)(ans + 0.5)); }}
1 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- html5表单实例
- 禁止浏览器缓存所有动态页面的过滤器:
- MFC学习之GDI(一)
- python的代码缩进
- 如何用C++实现一个LRU Cache
- HDU
- WebSocket详解
- html立体盒子
- HDU
- SecureCRT通过SSH服务登录ubuntu出错:Password authentication failed, Please verify that the username and passw
- C语言第四次作业练习
- 继承、多态和抽象类
- 卷积神经网络图像纹理合成 Texture Synthesis Using Convolutional Neural Networks
- 滑动窗口:转山转水转佛陀,只为途中与你相见