LigthOJ1284-Lights inside 3D Grid
来源:互联网 发布:JavaScript this 编辑:程序博客网 时间:2024/06/12 01:20
题意:在一个长宽高为XYZ的长方体中所有的灯都是关着的,一次操作为任选两个格子,以这两个格子为顶点的长方体所包括的所有格子上的灯状态都会改变,关的会被打开,开的会被关掉,给定XYZ的值,现在进行K次操作,问开着的灯的期望个数
思路:求出每个格子经过K次操作后灯是开着的期望值,然后把所有的格子的期望值加起来就是总期望值
对于每个格子,把XYZ的值分开考虑,因为XYZ是分别独立的,如果在一次操作中这个格子的灯状态改变了,那么选中的两个顶点一定在这个格子的两边,否则这个格子不会被选到的长方体覆盖到,设该点坐标为(x0,y0,z0),那么满足x1<=x0<=x2,y1<=y0<=y2,z1<=z0<=z2,
所以该点被覆盖的概率P=( 2*(x0+1)*(X-x0) - 1 ) * ( 2*(y0+1)*(Y-y0) - 1 ) * ( 2*(z0+1)*(Z-z0) - 1 ) / ( X*X*Y*Y*Z*Z )
因为灯的初始状态是关,所以被操作奇数次的格子灯的状态为开,所以在k次操作中,事件发生奇数次的期望E
为
这是二项展开式( p + (1-p) ) ^ k = 1 的奇数项,令 ( -p + (1-p) ) ^ k,则E = (1 - ( -p + (1-p) ) ^ k) / 2.
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <queue>using namespace std;int main () {int t;scanf ( "%d", &t );for ( int cas = 1; cas <= t; cas++ ) {int X,Y,Z,k;scanf ( "%d%d%d%d", &X, &Y, &Z, &k );double ans = 0.0;double all = 1.0*X*X*Y*Y*Z*Z;for ( int x = 0; x < X; x++ ) {for ( int y = 0; y < Y; y++ ) {for ( int z = 0; z < Z; z++ ) {double p = (2.0 * (x+1) * (X-x) - 1) * (2.0 * (y+1) * (Y-y) - 1) * (2.0 * (z+1) * (Z-z) - 1) / all;double temp = ( 1 - pow(1-2*p,1.0*k) ) / 2.0;ans += temp;}}}printf ( "Case %d: %lf\n", cas, ans );}return 0;}
0 0
- LigthOJ1284-Lights inside 3D Grid
- LigthOJ1284-Lights inside 3D Grid
- Lights inside 3D Grid LightOJ
- LightOJ 1284 Lights inside 3D Grid
- LightOJ 1284 Lights inside 3D Grid (概率期望)
- uva11605 - Lights inside a 3d Grid 概率
- uva 11605 - Lights inside a 3d Grid(概率)
- UVa 11605 - Lights inside a 3d Grid 期望
- [UVA11605] Lights inside a 3d Grid && 数学期望
- UVA 11605 - Lights inside a 3d Grid 概率
- UVA11605 Lights inside a 3d Grid(概率公式)
- UVa 11605 - Lights inside a 3D Grid
- UVa 11605 - Lights inside a 3d Grid
- Light oj 1284 Lights inside 3D Grid
- LightOJ-1284 Lights inside 3D Grid (概率&计数)
- UVa 11605 : Lights inside a 3d Grid(期望)
- UVA 11605 - Lights inside a 3d Grid(概率+数学)
- light oj 1284 - Lights inside 3D Grid(求期望)
- java web使用session实现使用注册码码登录
- nodejs 操作redis
- #1098 : 最小生成树二·Kruscal算法
- 兄弟打印机出现 DRUM ERROR 的解决方法
- android之我自己实现的下拉刷新
- LigthOJ1284-Lights inside 3D Grid
- Partition List
- OpenGL教程翻译 第九课 插值
- hdoj 1376 DNA Sorting
- 让服务器定时自动重启
- [转载]《浪潮之巅》读书笔记汇总
- 你衣服就能第一任
- [TYVJ1334] powermax
- OpenGL教程翻译 第十课 索引绘制